javascript
框架学习——带你了解SpringBoot框架
目錄
一. SpringBoot簡介
1.1 原有Spring優缺點分析
1.1.1 Spring的優點分析
1.1.2 Spring的缺點分析
1.2 SpringBoot的概述
1.2.1 SpringBoot的特點
1.2.2 SpringBoot的核心功能
二. SpringBoot實例
2.1.創建SpringBoot簡單實例
2.1.1.創建工程
2.1.2.添加依賴
2.1.3.添加工程主啟動類
2.1.4.創建Controller
2.1.5.測試
2.1.6.工程目錄結構
2.2.使用Spring Initializr創建工程
2.2.1.使用官方工具生成工程
2.2.2.工程目錄結構
2.2.3.pom.xml文件
2.2.4.工程主啟動類
2.2.5.創建Controller
2.2.6.測試
2.3.使用STS創建工程
2.3.1.創建Spring Starter Project工程
2.3.2.添加工程信息
2.3.3.添加版本及依賴信息
2.3.4.生成SpringBoot工程
2.4.SpringBoot熱部署
2.5.SpringBoot的跨域處理
2.6.@RequestBody實現參數序列化
三. SpringBoot原理分析
3.1.起步依賴原理解析
3.1.1.分析spring-boot-starter-parent
3.1.2.分析spring-boot-starter-web
3.2.自動配置原理解析
3.3.處理器配置原理解析
四. SpringBoot工程配置文件
4.1.application.properties配置文件
4.2.application.yml配置文件
4.3.SpringBoot配置信息的查詢
4.4.@Value注解
五. SpringBoot整合MyBatis
5.1.添加MyBatis相關依賴
5.2.添加MyBatis相關配置
5.3.創建mapper接口
5.4.創建service接口與實現類
5.5.創建controller
六.?框架學習專欄
一. SpringBoot簡介
1.1 原有Spring優缺點分析
1.1.1 Spring的優點分析
????????Spring是Java企業版(Java Enterprise Edition,javeEE)的輕量級代替品。無需開發重量級的Enterprise JavaBean(EJB),Spring為企業級Java開發提供了一種相對簡單的方法,通過依賴注入和面向切面編程,用簡單的Java對象(Plain Old Java Object,POJO)實現了EJB的功能。
1.1.2 Spring的缺點分析
????????雖然Spring的組件代碼是輕量級的,但它的配置卻是重量級的。
????????不論是一開始的基于XML的配置,還是Spring2.5引入的基于注解的組件掃描,還是Spring 3.0引入的基于Java的配置,這些都代表了開發時的額外損耗。
????????因為在思考Spring配置和解決業務問題之間需要進行思維切換,甚至還帶來了何種方式配置更好的無謂爭論,所以編寫配置擠占了編寫應用程序邏輯的時間。和所有框架一樣,Spring實用,但與此同時它要求的回報也不少。
????????除此之外,項目的依賴管理也是一件耗時耗力的事情。在環境搭建時,需要分析要導入哪些庫的坐標,而且還需要分析導入與之有依賴關系的其他庫的坐標,一旦選錯了依賴的版本,隨之而來的不兼容問題就會嚴重阻礙項目的開發進度。
1.2 SpringBoot的概述
????????SpringBoot對上述Spring的缺點進行的改善和優化,基于約定優于配置的思想,可以讓開發人員不必在配置與邏輯業務之間進行思維的切換,全身心的投入到邏輯業務的代碼編寫中,從而大大提高了開發的效率,一定程度上縮短了項目周期。
1.2.1 SpringBoot的特點
- SpringBoot不是對Spring功能上的增強,而是提供了一種快速構建Spring的方式
- 開箱即用,沒有代碼生成,也無需XML配置。同時也可以修改默認值來滿足特定的需求
- 提供了一些大型項目中常見的非功能性特性,如嵌入式服務器(嵌入Tomcat,無需部署WAR文件)、安全、指標,健康檢測、外部配置等
1.2.2 SpringBoot的核心功能
- 起步依賴
起步依賴本質上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能。
簡單的說,起步依賴就是將具備某種功能的坐標打包到一起,并提供一些默認的功能。 - 自動配置
Spring Boot的自動配置是一個運行時(更準確地說,是應用程序啟動時)的過程,考慮了眾多因素,才決定Spring配置應該用哪個,不該用哪個。該過程是Spring自動完成的。
后面會詳細說明起步依賴與自動配置的原理解析。
二. SpringBoot實例
2.1.創建SpringBoot簡單實例
下面使用Maven創建一個基于SpringBoot的Web工程的簡單實例。
2.1.1.創建工程
注意:雖然是創建Web工程,但由于SpringBoot內嵌了Tomcat,所以這里選擇jar包形式的工程。
2.1.2.添加依賴
在pom.xml文件中添加SpringBoot的相關依賴
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.neusoft</groupId><artifactId>boot</artifactId><version>0.0.1-SNAPSHOT</version><!-- 繼承Spring Boot父級依賴,也就是:spring-boot-dependencies。父級依賴管理了Spring Boot項目中的所有依賴版本,以后導入依賴默認不需要寫版本號了。(當前沒有在dependencies里面管理的依賴自然需要聲明版本號)--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version></parent><dependencies><!-- spring-boot-starter是Spring Boot的核心啟動器。只要引入官方提供的starter,就可以將此模塊中的相關jar都導入進來。官方的starter命名規范是:spring-boot-starter-模塊名所以,下面配置會將web開發相關jar都導入進來,并自動管理版本信息。--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies> </project>2.1.3.添加工程主啟動類
在類路徑下創建HelloApplication.java文件
package com.neusoft.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HelloApplication {public static void main(String[] args) {SpringApplication.run(HelloApplication.class, args);} }????????注意:
例如:如果DemoApplication類所在的包為:com.neusoft.demo;那么就會自動掃描com.neusoft.demo 包及其所有子包,否則不會被掃描!
所以,應將SpringBoot的程序入口類放到mapper、service所在包的上級。
2.1.4.創建Controller
在 HelloApplication.java 所在包下創建controller包,然后創建Controller。
package com.neusoft.boot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController {@RequestMapping("/hello")public String say(){ //可以直接返回對象或集合,客戶端將接收到json數據return "hello...";} }@RestController 注解標識當前類為Controller組件,并且直接響應json數據。
2.1.5.測試
????????執行HelloApplication類的入口方法,SpringApplication類中的run方法就會啟動當前的SpringBoot工程。
Tomcat started on port(s): 8080 (http) with context path '' Started DemoApplication in 4.292 seconds (JVM running for 5.15)????????當控制臺輸出上述內容時,表示SpringBoot工程啟動成功。 在地址欄中輸入url進行訪問測試:
注意:SpringBoot內嵌了Tomcat,所以只需要運行SpringBoot工程的主啟動類即可。
2.1.6.工程目錄結構
2.2.使用Spring Initializr創建工程
????????上面案例中,我們自己手動搭建了一個SpringBoot框架。實際上,為了實現快速開發,SpringBoot官方給我們提供了一個初始化器,可以引導我們快速構建一個SpringBoot工程。
2.2.1.使用官方工具生成工程
????????打開 SpringBoot 官網:https://spring.io/projects/spring-boot/; 在網站的下部有 Spring Initializr 的鏈接。
點擊此鏈接,進入到工程引導頁面:
????????注意:
2.2.2.工程目錄結構
先使用IDE導入工程(這里使用STS導入此Maven工程)。
注意: mvnw是一個maven wrapper script(Maven包裝腳本),它可以讓你在沒有安裝maven或者maven版本不兼容的條件下運行maven的命令。
2.2.3.pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- pom模型版本 --><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!-- 項目信息 --><groupId>com.neusoft</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><!-- 配置工程字符編碼集 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><!-- 配置SpringBoot的Maven插件 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> </project>2.2.4.工程主啟動類
package com.neusoft.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);} }2.2.5.創建Controller
在 DemoApplication.java 所在包下創建controller包,然后創建Controller。
package com.neusoft.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController {@RequestMapping("/hello")public String say() {return "hello...";} }2.2.6.測試
執行 DemoApplication類的入口方法,然后在地址欄中輸入url進行訪問測試。
2.3.使用STS創建工程
2.3.1.創建Spring Starter Project工程
2.3.2.添加工程信息
注意:這里添加Maven工程需要的一些信息
2.3.3.添加版本及依賴信息
注意:這里添加SpringBoot版本信息、添加的依賴信息。然后點擊 “Finish” 。
2.3.4.生成SpringBoot工程
????????工程創建完成后,我們會發現:創建的工程與使用 Spring Initializr 創建的工程是完全一樣的。
2.4.SpringBoot熱部署
????????我們在開發中反復修改類、頁面等資源,每次修改后都是需要重新啟動才生效,這樣每次啟動都很麻煩,浪費了大量的時間,我們可以在修改代碼后不重啟就能生效,在 pom.xml 中添加如下配置就可以實現這樣的功能,我們稱之為熱部署。
<!--熱部署配置--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId> </dependency>2.5.SpringBoot的跨域處理
????????除了使用傳統的過濾器來設置跨域處理配置之外,SpringBoot還給我們提供了兩種跨域處理方式:
- 使用 @CrossOrigin 注解配置某一個 Controller 允許跨域。
- 實現 WebMvcConfigurer 接口中的 addCorsMappings 方法,在此方法中配置全局跨域處理。
在工程中添加 WebMvcConfig 類。此類配置了 @Configuration 注解,就成為一個 Spring 容器類,工程啟動時會自動加載此類中的配置。
2.6.@RequestBody實現參數序列化
????????前端使用 AJAX 的 post 方式請求時,需要對請求參數做序列化處理,否則 SpringMVC 無法接收提交參數。
//使用qs模塊中的stringify方法實現post提交時的參數序列化 this.$axios.post('http://localhost:8080/hello', this.$qs.stringify(user))...????????在 SpringBoot 中,可以使用 @RequestBody 注解,在服務器端實現 post 提交時的參數序列化處理。這樣,前端的 post 請求就可以直接提交 json 對象了。
@RequestMapping("/hello") //在參數前使用@RequestBody注解 public String say(@RequestBody User user) {System.out.println(user);return "hello..."; } let user = {userId: 1,userName: 'zhangsan',password: '123' }; axios.post('http://localhost:8080/elm/hello',user).then(response => {console.log(response.data);}).catch(error => {console.log(error);});@RequestBody 注解很強大,它甚至于可以直接接收 json 數組。
@RequestMapping("/hello") //使用集合接收json數組 public String say(@RequestBody List<User> list) {for(User user : list) {System.out.println(user);}return "hello..."; } let userArr = [{userId: 1,userName: '張三',password: '123' }, {userId: 2,userName: '李四',password: '888' }, {userId: 3,userName: '王五',password: '999' }] axios.post('http://localhost:8080/elm/hello', userArr).then(response => {console.log(response.data);}).catch(error => {console.log(error);});注意:@RequestBody 注解不支持get方式請求
三. SpringBoot原理分析
3.1.起步依賴原理解析
3.1.1.分析spring-boot-starter-parent
????????按住Ctrl鍵,然后點擊pom.xml中的spring-boot-starter-parent,跳轉到了spring-boot-starter-parent的pom.xml,xml配置如下(只摘抄了部分重點配置):
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.3.RELEASE</version><relativePath>../../spring-boot-dependencies</relativePath> </parent>????????按住Ctrll鍵,然后點擊pom.xml中的spring-boot-starter-dependencies,跳轉到了spring-boot-starter-dependencies的pom.xml,xml配置如下(只摘抄了部分重點配置):
<properties><activemq.version>5.15.3</activemq.version><antlr2.version>2.7.7</antlr2.version><appengine-sdk.version>1.9.63</appengine-sdk.version><artemis.version>2.4.0</artemis.version><aspectj.version>1.8.13</aspectj.version><assertj.version>3.9.1</assertj.version><atomikos.version>4.0.6</atomikos.version><bitronix.version>2.1.4</bitronix.version><build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version><byte-buddy.version>1.7.11</byte-buddy.version>... ... ... </properties> <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId><version>2.3.1.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><version>2.3.3.RELEASE</version></dependency>... ... ...</dependencies> </dependencyManagement> <build><pluginManagement><plugins><plugin><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-maven-plugin</artifactId><version>${kotlin.version}</version></plugin><plugin><groupId>org.jooq</groupId><artifactId>jooq-codegen-maven</artifactId><version>${jooq.version}</version></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.3.RELEASE</version></plugin>... ... ...</plugins></pluginManagement> </build>????????從上面的spring-boot-starter-dependencies的pom.xml中我們可以發現,一部分坐標的版本、> > 依賴管理、插件管理已經定義好,所以我們的SpringBoot工程繼承spring-boot-starter-parent后> > 已經具備版本鎖定等配置了。所以起步依賴的作用就是進行依賴的傳遞。
3.1.2.分析spring-boot-starter-web
????????按住Ctrll鍵,然后點擊pom.xml中的spring-boot-starter-web,跳轉到了spring-boot-starter-web的pom.xml,xml配置如下(只摘抄了部分重點配置):
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starters</artifactId><version>2.3.3.RELEASE</version></parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.3.RELEASE</version><name>Spring Boot Web Starter</name><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.3.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-json</artifactId><version>2.3.3.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>2.3.3.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.0.9.Final</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.2.8.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.8.RELEASE</version><scope>compile</scope></dependency></dependencies> </project>????????從上面的spring-boot-starter-web的pom.xml中我們可以發現,spring-boot-starter-web就是將> web開發要使用的spring-web、spring-webmvc等坐標進行了“打包”,這樣我們的工程只要引入spring-boot-starter-web起步依賴的坐標就可以進行web開發了,同樣體現了依賴傳遞的作用。
3.2.自動配置原理解析
按住Ctrll鍵,然后點擊查看啟動類DemoApplication上的注解@SpringBootApplication
@SpringBootApplication public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);} }注解@SpringBootApplication的源碼
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { //... }@SpringBootConfiguration:等同與@Configuration,既標注該類是Spring的一個配置類@EnableAutoConfiguration:SpringBoot自動配置功能開啟 @ComponentScan:定義掃描路徑,從中找出標識了需要裝配的類,并自動裝配到spring容器中
3.3.處理器配置原理解析
按住Ctrll鍵,然后點擊查看處理器類 UserController上的注解@RestController
@RestController public class UserController { }注解@RestController的源碼
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { //... }可以看到:@RestController注解就相當于:@Controller+@ResponseBody
四. SpringBoot工程配置文件
????????SpringBoot是基于約定的,所以很多配置都有默認值,但如果想使用自己的配置替換默認配置的話,就可以使用SpringBoot配置文件進行配置。
????????SpringBoot配置文件有兩種:properties文件形式、yml文件形式。SpringBoot默認會從Resources目錄下加載application.properties或application.yml文件。
4.1.application.properties配置文件
下面是一個 application.properties 配置文件實例:
## 修改服務器啟動端口 server.port=8080 ## 設置應用程序訪問上下文路徑 server.servlet.context-path=/elm ## 設置SpringBoot日志輸出級別(error、warn、info、debug) logging.level.org.springframework=debug4.2.application.yml配置文件
????????YML文件格式是YAML (YAML Aint Markup Language)編寫的文件格式,YAML是一種直觀的能夠被電腦識別的數據序列化格式,并且容易被人類閱讀,容易和腳本語言交互的,可以被支持YAML庫的不同的編程語言程序導入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以數據為核心的,比傳統的xml方式更加簡潔。
YML文件的擴展名可以使用.yml或者.yaml。
下面是一個 application.yml 配置文件實例:
server:port: 8080servlet:context-path: /elm logging:level:org.springframework: debug????????yml文件基本語法:
- 大小寫敏感
- 使用縮進表示層級關系(縮進的空格數并不重要,只要相同層級的元素左對齊即可)
- 縮進不允許使用tab,只允許空格
- 冒號后必須要有一個空格
- 使用 # 作為注釋
4.3.SpringBoot配置信息的查詢
????????上面提及過,SpringBoot的配置文件,主要的目的就是對配置信息進行修改的,但在配置時的key從哪里去查詢呢?我們可以查閱SpringBoot的官方文檔文檔URL: Spring Boot Reference Guide 常用的配置摘抄如下:
# QUARTZ SCHEDULER (QuartzProperties) spring.quartz.jdbc.initialize-schema=embedded # Database schema initialization mode. spring.quartz.jdbc.schema=classpath:org/quartz/impl/jdbcjobstore/tables_@@platform@@.sql # Path to the SQL file to use to initialize the database schema. spring.quartz.job-store-type=memory # Quartz job store type. spring.quartz.properties.*= # Additional Quartz Scheduler properties. # ---------------------------------------- # WEB PROPERTIES # ---------------------------------------- # EMBEDDED SERVER CONFIGURATION (ServerProperties) server.port=8080 # Server HTTP port. server.servlet.context-path= # Context path of the application. server.servlet.path=/ # Path of the main dispatcher servlet. # HTTP encoding (HttpEncodingProperties) spring.http.encoding.charset=UTF-8 # Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly. # JACKSON (JacksonProperties) spring.jackson.date-format= # Date format string or a fully-qualified date format class name. For instance, `yyyy-MM-dd HH:mm:ss`. # SPRING MVC (WebMvcProperties) spring.mvc.servlet.load-on-startup=-1 # Load on startup priority of the dispatcher servlet. spring.mvc.static-path-pattern=/** # Path pattern used for static resources. spring.mvc.view.prefix= # Spring MVC view prefix. spring.mvc.view.suffix= # Spring MVC view suffix. # DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) spring.datasource.driver-class-name= # Fully qualified name of the JDBC driver. Auto-detected based on the URL by default. spring.datasource.password= # Login password of the database. spring.datasource.url= # JDBC URL of the database. spring.datasource.username= # Login username of the database.4.4.@Value注解
我們可以通過@Value注解,將配置文件中的值映射到一個Spring管理的Bean的屬性上。
@RestController public class DeptController {//server.port 就是SpringBoot配置文件中的一個值@Value("${server.port}")private int port;@Autowiredprivate DeptService deptService;@RequestMapping("/listDept")public List<Dept> listDept(){System.out.println("端口:"+port);return deptService.listDept();} }將@Value注解放置在一個屬性上,就可以使用它獲取SpringBoot配置文件中的值。
五. SpringBoot整合MyBatis
5.1.添加MyBatis相關依賴
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.1</version> </dependency> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version><scope>runtime</scope> </dependency>5.2.添加MyBatis相關配置
在application.properties配置文件中配置MyBatis相關信息
server.port=8080 server.servlet.context-path=/elm ## logging.level.org.springframework=debug ## 配置mapper輸出日志級別 logging.level.com.neusoft.demo.mapper=debug ## 配置數據源信息 spring.datasource.username=root spring.datasource.password=123 spring.datasource.url=jdbc:mysql://localhost:3306/elm?characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ## 配置mapper映射文件路徑 mybatis.mapper-locations=classpath:mapper/*.xml ## 配置掃描實體包,給實體類設置別名 mybatis.type-aliases-package=com.neusoft.demo.po也可以使用application.yml形式配置文件進行MyBatis相關配置:
server:port: 8080servlet:context-path: /elm logging:level:org.springframework: debugcom.neusoft.demo.mapper: debug spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/elm?characterEncoding=utf-8username: rootpassword: 123 mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.neusoft.demo.po5.3.創建mapper接口
@Mapper public interface DeptMapper {@Select("select * from dept order by deptno")public List<Dept> listDept(); }注意:必須要使用 @Mapper 標識此mapper接口
5.4.創建service接口與實現類
public interface DeptService {public List<Dept> listDept(); } @Service public class DeptServiceImpl implements DeptService{@Autowiredprivate DeptMapper deptMapper;@Override@Transactional //注意:需要在主啟動類上添加@EnableTransactionManagement注解public List<Dept> listDept() {return deptMapper.listDept();} }5.5.創建controller
@RestController public class DeptController {@Autowiredprivate DeptService deptService;@RequestMapping("/listDept")public List<Dept> listDept(){return deptService.listDept();} }六.?框架學習專欄
https://blog.csdn.net/weixin_53919192/category_11924706.html?spm=1001.2014.3001.5482https://blog.csdn.net/weixin_53919192/category_11924706.html?spm=1001.2014.3001.5482
總結
以上是生活随笔為你收集整理的框架学习——带你了解SpringBoot框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [联通版] [ROM][9502][联通
- 下一篇: 地图绘制和四色算法,图搜索算法,最小生成