來自:SimpleWu
鏈接:https://www.cnblogs.com/SimpleWu/p/9798146.html
SpringBoot簡介
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
Spring Boot讓我們的Spring應用變的更輕量化。比如:你可以僅僅依靠一個Java類來運行一個Spring引用。你也可以打包你的應用為jar並通過使用java -jar來運行你的Spring Web應用。
Spring Boot的主要優點:
- 為所有Spring開發者更快的入門
- 開箱即用,提供各種默認配置來簡化項目配置
- 內嵌式容器簡化Web項目
- 沒有冗餘代碼生成和XML配置的要求
在下面的代碼中只要有一定基礎會發現這寫代碼實例非常簡單對於開發者來說幾乎是“零配置”。
SpringBoot運行
開發工具:jdk8,IDEA,STS,eclipse(需要安裝STS插件)這些都支持快速啟動SpringBoot工程。我這裡就不快速啟動了,使用maven工程。學習任何一項技術首先就要精通HelloWord,那我們來跑個初體驗。
首先只用maven我們創建的maven工程直接以jar包的形式創建就行了,首先我們來引入SpringBoot的依賴
首先我們需要依賴SpringBoot父工程,這是每個項目中必須要有的。
<code><
parent
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-parentartifactId
><
version
>2.0.5.RELEASEversion
><
relativePath
/>parent
><
properties
><
project.build.sourceEncoding
>UTF-8project.build.sourceEncoding
><
project.reporting.outputEncoding
>UTF-8project.reporting.outputEncoding
><
java.version
>1.8java.version
>properties
> /<code>
我們啟動WEB模塊當然必須要引入WEB模塊的依賴
<code><
dependencies
><
dependency
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-webartifactId
>dependency
>dependencies
>/<code>
我們需要編寫一個SpringBoot啟動類,SpringbootFirstExperienceApplication.java
<code>public
class
SpringbootFirstExperienceApplication
{public
static
void
main
(String[] args)
{ SpringApplication.run(SpringbootFirstExperienceApplication.
class
,args
); } }/<code>
到了這裡我們直接把他當成SpringMVC來使用就行了,不過這裡默認是不支持JSP官方推薦使用模板引擎,後面會寫到整合JSP。這裡我就不寫Controller了。
@SpringBootApplication:之前用戶使用的是3個註解註解他們的main類。分別是@Configuration,@EnableAutoConfiguration,@ComponentScan。由於這些註解一般都是一起使用,spring boot提供了一個統一的註解@SpringBootApplication。
注意事項:我們使用這個註解在不指定掃描路徑的情況下,SpringBoot只能掃描到和SpringbootFirstExperienceApplication同包或子包的Bean;
SpringBoot目錄結構
在src/main/resources中我們可以有幾個文件夾:
- templates:用來存儲模板引擎的,Thymeleaf,FreeMarker,Velocity等都是不錯的選擇。
- static:存儲一些靜態資源,css,js等
- public:在默認SpringBoot工程中是不生成這個文件夾的,但是在自動配置中我們可以有這個文件夾用來存放公共的資源(html等)
- application.properties:這個文件名字是固定的,SpringBoot啟動會默認加載這些配置在這裡面可以配置端口號,訪問路徑,數據庫連接信息等等。這個文件非常重要,當然官方中推出了一個yml格式這是非常強大的數據格式。
整合JdbcTemplate
引入依賴:
<code><
parent
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-parentartifactId
><
version
>1.5.2.RELEASEversion
>parent
><
dependencies
><
dependency
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-webartifactId
>dependency
><
dependency
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-jdbcartifactId
>dependency
><
dependency
><
groupId
> mysqlgroupId
><
artifactId
>mysql-connector-javaartifactId
>dependency
><
dependency
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-testartifactId
><
scope
>testscope
>dependency
>dependencies
>/<code>
配置application.properties,雖然說是“零配置”但是這些必要的肯定要指定,否則它怎麼知道連那個數據庫?
<code>spring.datasource.url
=jdbc:mysql://localhost:3306
/mybatisspring.datasource.username
=rootspring.datasource.password
=rootspring.datasource.driver-class-name
=com.mysql.jdbc.Driver/<code>
使用方式:
<code>public
class
EmployeeService {private
JdbcTemplate jdbcTemplate;public
boolean
saveEmp(String
name,String
email,String
gender){String
sql ="insert into tal_employee values(null,?,?,?)"
; int result = jdbcTemplate.update(sql, name,email,gender); System.out.println("result : "
+ result);return
result >0
?true
:false
; } }/<code>
<code>public
class
EmployeeController {private
EmployeeService employeeService; ("/save"
)public
String
insert(String
name,String
email,String
gender){boolean
result = employeeService.saveEmp(name, email, gender);if
(result){return
"success"
; }return
"error"
; } }/<code>
這裡我們直接返回一個文本格式。
@RestController
在上面的代碼中我們使用到這個註解修改我們的Controller類而是不使用@Controller這個註解,其實中包含了@Controller,同時包含@ResponseBody既然修飾在類上面那麼就是表示這個類中所有的方法都是@ResponseBody所以在這裡我們返回字符串在前臺我們會以文本格式展示,如果是對象那麼它會自動轉換成json格式返回。
整合JSP
在創建整合JSP的時候指定要選WAR,一定要選WAR。
引入依賴:
<code>parent><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-parentartifactId
><
version
>1.5.2.RELEASEversion
>parent
><
dependencies
><
dependency
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-webartifactId
>dependency
><
dependency
><
groupId
>org.springframework.bootgroupId
><
artifactId
>spring-boot-starter-tomcatartifactId
>dependency
><
dependency
><
groupId
>org.apache.tomcat.embedgroupId
><
artifactId
>tomcat-embed-jasperartifactId
>dependency
>dependencies
>/<code>
然後我們只需要配置試圖解析器路徑就可以了。
<code>spring.mvc.view.prefix
=/WEB-INF/views/spring.mvc.view.suffix
=.jsp/<code>
整合JPA
同樣的整合JPA我們只需要啟動我們SpringBoot已經集成好的模塊即可。
添加依賴:

啟動JPA組件後直接配置數據庫連接信息就可以使用JPA功能。
Application.properties
<code>spring.datasource.url
=jdbc:mysql://localhost:3306
/mybatisspring.datasource.username
=rootspring.datasource.password
=rootspring.datasource.driver-class-name
=com.mysql.jdbc.Driver/<code>
實體類:Employee.java
<code>@Table
(name="tal_employee"
)@Entity
public class Employee implements Serializable{@Id
@GeneratedValue
(strategy = GenerationType.AUTO) private Integer id;@Column
(name="last_Name"
) private String lastName;private
String
private
String
gender
; }/<code>
EmployeeDao接口:
<code>public
interface
EmployeeDao
extends
JpaRepository
<Employee
,Integer
>{ }/<code>
EmployeeController.java:

整合MyBatis
引入依賴:
配置application.properties
當然這裡還有很多屬性如果想要使用可以參考官方文檔。到了這裡其他就不寫了,把他當作SSM使用就ok。
注意事項:在我們的Dao層接口中一定要在類上加上註解@Mapper否則無法掃描到。
AOP功能使用
在我們SpringBoot中使用AOP非常簡單。
任務調度
SpringBoot已經集成好一個調度功能。
然後啟動的時候我們必須要在主函數類上加上註解:@EnableScheduling(翻譯過來就是開啟調度)