一:
上官網:https://start.spring.io/選擇需要加載的jar包:
Rest Repositories :用於restful項目。
mySQL : 連接mysql數據庫的驅動。
mybatis:使用mybatis框架。
DevTools:熱部署jar包(也可以在maven文件中引用)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
下載下來就是一個maven項目,使用開發工具打開此maven項目
二:GET請求
關鍵字:GerMapping
GerMapping的一些用法:
GerMapping(/index):在/index鏈接下訪問此方法。
GerMapping(/{id})
public XXX getXXX(@PathVariable int id){}
:在訪問鏈接由傳入的參數ID產生。
獲取get請求中的參數:
@GetMapping("/getobj")
public Object getObjByParam(@RequestParam("name") String name,@RequestParam("sex")String sex,@RequestParam("name")int age){
String str = "test = " + age+" name = "+name +" sex = "+sex;
logger.info(str);
return age;
}
顯然給代碼維護和閱讀帶來不便,可以通過構造一個對象來簡化參數的接收方式如下:
@GetMapping("/getobj")
public Object getObj(Test test){
logger.info("test = " + test);
return test;
}
三:POST請求
關鍵字:postMapping
postMapping可以通過對象接收參數
@PostMapping("/getobj")
public Object getObj(Test test){
logger.info("test = " + test);
return test;
}
四:上傳文件:
上傳文件肯定用的是POST格式
@PostMapping(value="/{id}/photos",consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
public void addPhoto(@PathVariable int id, @RequestParam("photo") MultipartFile imgFile) throws Exception{
if (log.isTraceEnabled()){
log.trace("接收到文件"+ id + “收到文件” + imgFile.getOriginalFilename());//.getOriginalFilename()獲取文件名稱
}
//保存文件
FileOutputStream fos = new FileOutputStream("target/" + imgFile.getOriginalFilename());//定義文件的輸出
IOUtils.copy( imgFile.getInputStream(),fos);
fos.close();
}
五:下載文件
@GetMapping(value="/{id}/icon",produce=MediaType.IMAGE_JPEG_VALUE)
public byte[] getIcon(@PathVariable int id) throws Exception{
String iconFile = 'src/test/resources/icon.jpg';
InputStream is new FileInputStream(iconFile);
return IOUtils.toByteArray(is);
}
六:spring日誌
spring默認使用的log4j作爲日誌輸出管理工具
在yml文件中的配置:
#配置日誌 logging: #配置日誌文件路徑 level: xatu.zsl: debug #不同目錄下的日誌可配置不同級別 org.springfromework.web: info org.hibernate: error #採用相對路徑方式將日誌文件輸出到【log\myspringboot.log】 file: log\myspringboot.log
#配置日誌文件路徑(絕對路徑) path: G:\work_space\study_spring2\study_boot_demo\log
日誌級別:trace<debug<info<warn<error<fatal。
七:集成mybatis
1.修改pom.xml添加mybatis的jar包(包括相應數據庫驅動)
2.修改application.yml添加數據庫連接(各個數據庫格式不同)
mysql(實例):
spring:
profiles:
active: prod
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: root
MariaDB和Oracle(實例):
datasources:
portal:
datasource:
url: jdbc:oracle:thin:@172.10.11.5:1521/orcl # jdbc:mariadb://127.0.0.1:3306/demo
username: demo
password: demo
driverClassName: oracle.jdbc.OracleDriver # org.mariadb.jdbc.Driver #
# 初始化大小,最小,最大
initialSize: 6
minIdle: 4
maxIdle: 15
maxActive: 22
# 配置獲取連接等待超時的時間
maxWait: 60000
# 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: select 1 from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
3.修改啓動類,增加@MapperScan("package-of-mapping")
在application.java中加入@MapperScan("填寫mapper路徑")例如:
@SpringBootApplication
@MapperScan("com.demo.dao")
public class Application{
public static void main(String[] args){
.......................
}
}
4.添加Mybatis Mapping接口等