SpringBoot之路(—)
一直在用Springboot
做專案,但是像是趕鴨子上架一樣,並沒有系統的從頭到一個專案來建立一個應用,最近打算做一個SpringBoot
開箱即用的專案,主要是覺得自己很菜,對於SpringBoot
僅僅停留在會用的階段,所以想從零開始做一個想加強一下自己的理解。(其實就是菜)後期打算用Vue
和SpringBoot
專案做一個前後端分離的專案,Ui打算採用iView
,用慣了Element
想換種風格~但其實都差不多啦。
建立一個SpringBoot應用
本章就來介紹兩種方式來建立一個SpringBoot
專案,根據Sping BOot官方文件的推薦,填好資訊後可以下載一個Zip檔案,然後解壓,在idea匯入就好了
Sping Initializr
來建立,如下圖選擇要使用的工具,這裡就先選擇
Web
、MySQL
、Mybatis
,然後下一步就可以了。(沒有連線資料庫的話需要把pom.xml中的MySQL先註釋掉不然啟動會報錯)這是目錄結構 開啟
DemoApplication
這個是SpingBoot
的啟動類,其中@SpringBootApplication
是一個配置類註解,它的作用像是@Configuration
,@EnableAutoConfiguration
,@ComponentScan
這些註解的組合,@Configuration
的作用是允許註冊額外的beans
,@ComponentScan
的作用是啟動元件掃描,@EnableAutoConfiguration
作用是啟動Sping Boot
的自動配置。然後我們新建一個
Controller
加上@RestController
註解,@RestController
註解在我們前後端分離開發中非常方便,因為我們目前的最好的是後端返回JSON資料然後給前臺來解析,當你使用了之後會發現非常之方便~然後我們用
PostMan
來測試啟動下,header
中選擇{key:Content-Type,value:application/json},body
中選擇raw
模式,然後傳送請求,可以看到hello,world就給我們返回來了。
整合Mybatis連線資料庫
SpingBoot整合Mybatis也非常簡單隻需要在pom檔案中加入
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
複製程式碼
整合Mysql:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
複製程式碼
然後我們到application.properties
中配置下連線資料庫的驅動這些
#連線MySQL
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
複製程式碼
然後新建一個mybatis的配置類:MybatisConfigurer
@Configuration
public class MybatisConfigurer {
@Bean
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
factory.setMapperLocations(resolver.getResources("classpath:/Mapper/**/*Mapper.xml"));
return factory.getObject();
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
mapperScannerConfigurer.setBasePackage("com.ywbjja.demo");
return mapperScannerConfigurer;
}
}
複製程式碼
在配置檔案中配置了Mapper.xml的地址,Spring Boot
會根據我們配置的地址去目錄下尋找Mapper.xml檔案,記得大小寫別錯了。
在資料庫中建立一個User表
CREATE TABLE `demo`.`user` (
`user_id` BIGINT NOT NULL,
`user_name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`user_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '使用者表';
複製程式碼
然後新增一條資料測試:
然後Mapper介面 Serviece類、我就不這裡寫了,Controller類的程式碼如下,@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/getUser")
public User getUser(@RequestBody Map<String ,Object> map){
return userService.queryUserById(map);
}
}
複製程式碼
在這裡推薦是用Map作為引數,這樣很節省程式碼量,然後使用postman測試就會有結果了。
0配置整合Mybatis
是不是覺得新建一個MybatisConfigurer
很麻煩?沒問題,這裡推薦使用第二種方法就是0配置使用註解實現整合Mybatis
,首先在Sping Boot
的啟動類加入@MapperScan
註解這個註解的作用就是會掃描這個目錄下的Mapper介面
@SpringBootApplication
@MapperScan(value = "com.ywbjja.demo")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
複製程式碼
然後再配置檔案中配置mapper.xml檔案地址
mybatis.mapper-locations=classpath*:Mapper/**/*Mapper.xml
複製程式碼
這樣一樣也能成功,省去了配置類,很方便了。好了到此就結束了,如果有錯誤的地方歡迎來噴我!!大聲的噴我!!!謝謝…
下一節打算說下SpringBoot
統一返回物件以及異常的處理~