摘要:第一步首先創(chuàng)建一個簡單的工程,這里也可以用上的模版。第二步建立需要用到的數(shù)據(jù)庫表,及數(shù)據(jù)。第三步建立項目的各個模塊,實現(xiàn)相應(yīng)的邏輯。模塊就是一個簡單的調(diào)用方法,代碼如下模塊代碼如下參數(shù)為必填項至此,整個項目創(chuàng)建完成,然后就是啟動測試了。
一直用SpringMVC+Spring開發(fā),雖然用了這么久,但對里面繁瑣的配置還是很頭疼,這種情況改用Springboot,無疑是個很好的選擇。廢話不多說,直接介紹自己如何使用的,在這之前還是有必要介紹下接下來的這個案例,這是一個入門級的Springboot應(yīng)用案例,實現(xiàn)訪問一個測試接口,獲取到數(shù)據(jù)庫中數(shù)據(jù)。
第一步:首先創(chuàng)建一個簡單的MAVEN工程,這里也可以用IDEA上的MAVEN模版(maven-archetype-webapp)。然后就是在pom.xml中引入Springboot相關(guān)的依賴,這里先默認繼承spring-boot-starter-parent(實際項目往往需要定義自己的)。
4.0.0 com.zyk testSpringboot war 1.0-SNAPSHOT testSpringboot Maven Webapp http://maven.apache.org org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE UTF-8 UTF-8 1.7 yyyyMMdd org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-log4j 1.3.8.RELEASE net.sf.json-lib json-lib 2.4 jdk15 org.springframework.boot spring-boot-starter-test test testSpringboot org.springframework.boot spring-boot-maven-plugin
這里使用的是JPA連接數(shù)據(jù)庫,數(shù)據(jù)庫是mySql,數(shù)據(jù)庫配置在application.properties中
#數(shù)據(jù)庫配置 spring.datasource.url=jdbc:mysql://192.168.8.189:3306/test spring.datasource.username=root spring.datasource.password=root server.port=8080 #項目訪問路徑 server.context-path=/testSpringboot
使用的log4j來記錄日志,配置文件為log4j.properties
#------------------------------------------------------------------- log4j.rootCategory=INFO, A1, Daily #log4j.logger.com.dayangit=DEBUG log4j.logger.org.hibernate.hql.internal.ast.HqlSqlWalker=ERROR #------------------------------------------------------------------- #A1 system output log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=[%d{HH:mm:ss.SSS}] [%t] %m%n #------------------------------------------------------------------- # Daily log4j.appender.Daily.encoding=GBK log4j.appender.Daily=org.apache.log4j.DailyRollingFileAppender log4j.appender.Daily.File=/testSpringboot/testSpringboot.log log4j.appender.Daily.DatePattern="."yyyy-MM-dd log4j.appender.Daily.layout=org.apache.log4j.PatternLayout log4j.appender.Daily.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss.SSS}][%t]%m%n
這里還要說一下spring-boot-maven-plugin,這是為了將整個項目打包成可以直接運行的jar包,既然可以直接運行提供接口,也說明了springboot的另一個特性,內(nèi)部自帶tomcat。
pom.xml完成后,重新加載后就可以了。
第二步:建立需要用到的數(shù)據(jù)庫表,及數(shù)據(jù)。上面application.properties中已經(jīng)規(guī)定了數(shù)據(jù)庫名,在此基礎(chǔ)上新建自己要用到的表及數(shù)據(jù)。我這里的建表語句是
CREATE TABLE `testspringboot` ( `id` VARCHAR(36) NOT NULL, `name` VARCHAR(50) DEFAULT NULL, `text` VARCHAR(2000) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
插入數(shù)據(jù)
insert into `testspringboot` (`id`, `name`, `text`) values("id1","zyk","哈哈哈哈哈哈哈哈哈哈"); insert into `testspringboot` (`id`, `name`, `text`) values("id2","yjh","呵呵呵呵呵呵呵呵呵呵呵呵");
到此數(shù)據(jù)庫部分完成。
第三步:建立項目的各個模塊,實現(xiàn)相應(yīng)的邏輯。我這里就用了四個模塊:bean,controller,service,dao,還有一個特殊的類SpringBootSampleApplication(名字不固定,但是要包含特定的main方法),
package com.zyk.testSpringboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Created by Administrator on 20171019 0019. */ @SpringBootApplication public class SpringBootSampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootSampleApplication.class, args); } }
我的理解這個類就是springboot的入口,程序的各個模塊需要在這個類的目錄結(jié)構(gòu)的下一級,我的目錄結(jié)構(gòu)如圖:
這里我只創(chuàng)建了一個實體類,對應(yīng)數(shù)據(jù)庫中的testspringboot表
package com.zyk.testSpringboot.bean; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * Created by Administrator on 20171019 0019. */ @Entity @Table(name="testspringboot") public class TestSpringboot { @Id private String id; private String name; private String text; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
需要提一下的這里的注解,@Entity說明這個class是實體類,并且使用默認的orm規(guī)則,如果想改變這種默認的orm規(guī)則,就要使用@Table來改變class名與數(shù)據(jù)庫中表名的映射規(guī)則,@Id 注解可將實體Bean中某個屬性定義為主鍵 ,@Table注解后,想要添加表中不存在字段,就要使用@Transient這個注解。
dao模塊我只創(chuàng)建了一個接口:
package com.zyk.testSpringboot.dao; import com.zyk.testSpringboot.bean.TestSpringboot; import org.springframework.data.repository.CrudRepository; /** * Created by Administrator on 20171019 0019. */ public interface ShowDaoInterface extends CrudRepository{ }
這里需要說明的是,通過繼承CrudRepository接口后,我們能夠直接用springboot已經(jīng)定義好的一些簡單的增刪改查方法。
service模塊就是一個簡單的調(diào)用方法,代碼如下:
package com.zyk.testSpringboot.service; import com.zyk.testSpringboot.bean.TestSpringboot; import com.zyk.testSpringboot.dao.ShowDaoInterface; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * Created by Administrator on 20171019 0019. */ @Service public class ShowService { @Resource private ShowDaoInterface showDaoInterface; public String getDataById(String id) { TestSpringboot testSpringboot=showDaoInterface.findOne(id); return testSpringboot.getText(); } }
controller模塊代碼如下:
package com.zyk.testSpringboot.controller; import com.zyk.testSpringboot.service.ShowService; import net.sf.json.JSONObject; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Collections; import java.util.HashMap; /** * Created by Administrator on 20171019 0019. */ @RestController public class ShowController { @Resource private ShowService showService; @GetMapping("/getTextById") public ResponseEntity getText(@RequestParam String id) { if(id!=null) { String text=showService.getDataById(id); JSONObject jsonObject=new JSONObject(); jsonObject.put("text",text); return ResponseEntity.ok().body(jsonObject); }else { return ResponseEntity.badRequest().body(Collections.singletonMap("info","參數(shù)id為必填項")); } } }
至此,整個項目創(chuàng)建完成,然后就是啟動測試了。
我是用的IDEA,啟動命令 spring-boot:run,在IDEA上配置如圖:
然后直接點擊運行就可以了,記得訪問接口時加上/testSpringboot。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67828.html
摘要:登錄網(wǎng)站,生成一個基本的應(yīng)用。目錄結(jié)構(gòu)如下由于生成的是,需要提前安裝好工具。重新運行函數(shù)啟動應(yīng)用。目錄結(jié)構(gòu)如下將類放置到下面,重新啟動應(yīng)用,一切正常。至此,一個簡單的基于的搭建完成。 1.登錄網(wǎng)站https://start.spring.io/,生成一個基本的SpringBoot應(yīng)用。 showImg(https://segmentfault.com/img/bVI6uh?w=1176...
摘要:喜歡學(xué)習(xí)新的技術(shù)和實現(xiàn)方案,挑戰(zhàn)難點。第三層直接符合的。遇到的問題,也盡可能的去一起解決,減輕學(xué)習(xí)上的痛苦。學(xué)習(xí)完了,就得實戰(zhàn)。當然也有我很多沒有考慮到的,還需繼續(xù)學(xué)習(xí)。在此期間,也可能會有更好,更有趣的想法在其中產(chǎn)生。 showImg(https://segmentfault.com/img/remote/1460000019521851); 有人說,Spring Boot的出現(xiàn),讓...
摘要:關(guān)于的自動配置,這個是重點之一,后面細說。在后續(xù)的學(xué)習(xí)中會慢慢學(xué)習(xí)到。紅色標記的就是已經(jīng)掃描到了并初始化成功了。 以下內(nèi)容,如有問題,煩請指出,謝謝 springboot出來也很久了,以前零散地學(xué)習(xí)了不少,不過很長時間了都沒有在實際中使用過了,忘了不少,因此要最近準備抽時間系統(tǒng)的學(xué)習(xí)積累下springboot,給自己留個根。 因為以前學(xué)過一些,這里就主要根據(jù)官方文檔來學(xué)習(xí)了,可能會根據(jù)...
摘要:我們會寫切面來攔截對這些業(yè)務(wù)類和類的調(diào)用。切面定義何時攔截一個方法以及做什么和在一起成為切面連接點當代碼開始執(zhí)行,并且切點的條件滿足時,通知被調(diào)用。 前言 這篇文章會幫助你使用Spring Boot Starter AOP實現(xiàn)AOP。我們會使用AspectJ實現(xiàn)四個不同的通知(advice),并且新建一個自定義的注解來追蹤方法的執(zhí)行時間。 你將會了解 什么是交叉分割關(guān)注點(cross...
閱讀 635·2023-04-26 01:53
閱讀 2760·2021-11-17 17:00
閱讀 2895·2021-09-04 16:40
閱讀 1995·2021-09-02 15:41
閱讀 844·2019-08-26 11:34
閱讀 1234·2019-08-26 10:16
閱讀 1342·2019-08-23 17:51
閱讀 830·2019-08-23 16:50