一 創(chuàng)建項(xiàng)目
使用idea創(chuàng)建項(xiàng)目, 創(chuàng)建項(xiàng)目時(shí)只選擇Web模塊, 生成項(xiàng)目后查看pom文件, 主要有4個(gè)依賴需要了解:
spring-boot-starter-parent---->>>>當(dāng)前SpringBoot的啟動(dòng)依賴,最基礎(chǔ)的東西
spring-boot-starter-web----->>>>>web項(xiàng)目的啟動(dòng)依賴
spring-boot-starter-test----->>>>>測(cè)試依賴
spring-boot-maven-plugin------>>>maven插件, 相關(guān)maven的編譯, 運(yùn)行等操作所需
二 注解
1 @Controller:處理http請(qǐng)求, 如果不搭配@ResponseBody使用,那么對(duì)于方法返回的是模板名稱,例如使用thyleaf的模板文件index.html
目前企業(yè)中開發(fā)項(xiàng)目大多都使用前后端分離,前端使用js調(diào)用后端restFul接口,返回json格式
2 @RequestMapping:配置url映射->@RequestMapping(value = "/hello", method = RequestMethod.GET)
可以使用GetMapping("/hello") PostMapping("/hello") 等實(shí)現(xiàn)簡(jiǎn)寫
3 @RestController:Spring4之后新的注解,原來(lái)返回json需要@ResponseBody配合@Controller
4 @Value("${XXX}") 使用在properties文件中定義的鍵值對(duì)-->>一般使用@ConfigurationProperties(prefix = )來(lái)取代
5 @ConfigurationProperties(prefix = ) 用來(lái)將類聲明成配置文件中具體的類對(duì)象, 然后使用其中的屬性
6 @Component---->只有加上此注解才能使用@Autowired注解,不明白的可以去看一下spring幾個(gè)常用的注解
7 @PathVariable? 獲取url中的數(shù)據(jù) : "say/{id}"? PathVariable("id") Integer id
8 @RequestParam? 獲取參數(shù)中的數(shù)據(jù)
9 @GetMapping 組合注解類似的有PostMapping PutMapping等等
三 3種啟動(dòng)方式
1 直接在idea中進(jìn)行啟動(dòng);
2 打開命令行, 切換到項(xiàng)目根目錄, 執(zhí)行命令mvn spring-boot:run;
3 打開命令行, 切換到項(xiàng)目根目錄, 使用mvn install進(jìn)行編譯, 然后切換到target目錄中找到生成的jar包,使用java -jar
的方式進(jìn)行運(yùn)行, 此種方式還可以跟特定的yml文件如下:
java -jar twohour-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
四 數(shù)據(jù)庫(kù)操作
1 添加依賴
spring-boot-starter-data-jpa
mysql-connector-java
2 yml文件中配置
spring:
? datasource:
? ? url: jdbc:mysql://127.0.0.1:3306/dbgirl?serverTimezone=UTC
? ? driver-class-name: com.mysql.cj.jdbc.Driver
? ? username: root
? ? password: 123456a?
? jpa:
? ? show-sql: true
? ? hibernate:
? ? ? ddl-auto: none? 不建議由程序來(lái)執(zhí)行ddl語(yǔ)句!!!所以最好設(shè)置成none
注意: 高版本的mysql對(duì)于url需要追加?serverTimezone=UTC, 不然會(huì)報(bào)錯(cuò),另外driver-class-name也發(fā)生了變化
3 創(chuàng)建domain對(duì)象對(duì)應(yīng)的jpa接口->public interface GirlRepository extends JpaRepository<Girl,Integer>
4 jpa具有駝峰標(biāo)識(shí)的轉(zhuǎn)換, 例如實(shí)體類中cupSize變量在數(shù)據(jù)庫(kù)中應(yīng)該是cup_size字段
五 事務(wù)
讀操作不需要事物, 寫操作只需要在對(duì)應(yīng)的方法上加@Transactional注解就可以