GA= General Availability:正式發佈版本,官方推薦使用此版本java
RCx=Release Candidate:候選版本,即將成爲正式發佈版react
SNAPSHOT: 快照版,能夠穩定使用,但仍在繼續改進git
Mx=stands for milestone:里程碑版本,開發版本,並不穩定github
1.x:最新發布版1.5.17 GA,發佈日2018.10.16)web
2.x:最新發布版爲2.0.6GA,發佈日2018.10.16)redis
版本依賴關係以下:spring
Spring boot 版本mongodb |
Spring Frameworkchrome |
jdk 版本數據庫 |
maven 版本 |
1.2.0 版本以前 |
6 |
3 |
|
1.2.0 |
4.1.3+ |
6 |
3.2+ |
1.2.1 |
4.1.3+ |
7 |
3.2+ |
1.2.3 |
4.1.5+ |
7 |
3.2+ |
1.3.4 |
4.2.6+ |
7 |
3.2+ |
1.3.6 |
4.2.7+ |
7 |
3.2+ |
1.3.7 |
4.2.7+ |
7 |
3.2+ |
1.3.8 |
4.2.8+ |
7 |
3.2+ |
1.4.0 |
4.3.2+ |
7 |
3.2+ |
1.4.1 |
4.3.3 |
7 |
3.2+ |
1.4.2 |
4.3.4 |
7 |
3.2+ |
1.4.3 |
4.3.5 |
7 |
3.2+ |
1.4.4 |
4.3.6 |
7 |
3.2+ |
1.4.5 |
4.3.7 |
7 |
3.2+ |
1.4.6 |
4.3.8 |
7 |
3.2+ |
1.4.7 |
4.3.9 |
7 |
3.2+ |
1.5.0 |
4.3.6 |
7 |
3.2+ |
1.5.2 |
4.3.7 |
7 |
3.2+ |
1.5.3 |
4.3.8 |
7 |
3.2+ |
1.5.4 |
4.3.9 |
7 |
3.2+ |
1.5.5 |
4.3.10 |
7 |
3.2+ |
1.5.7 |
4.3.11 |
7 |
3.2+ |
1.5.8 |
4.3.12 |
7 |
3.2+ |
1.5.9 |
4.3.13 |
7 |
3.2+ |
2.0.0 |
5.0.2 |
8 |
3.2+ |
Eclipse 4.8.0àHelpàEclipse MarketPlace…
選擇PopularàSpring Tools 3 Add-on:
安裝完後重啓生效。
1、Java 8或者9
2、Spring Framewok 5.0.10.RELEASE或者以上版本
3、構建採用maven3.2+或者gradle4.x
4、servlet容器採用tomcat8.5或者jetty9.4或者undertow1.4,servlet版本3.1
1、SpringBoot源碼位置:
https://github.com/spring-projects/spring-boot
命令行編譯能夠少不少問題,進出現一次JDK問題(見7、maven的問題2),以下:
D:\eclipse\workspace\spring-boot\spring-boot-project\spring-boot> mvn clean install -Dmaven.test.skip=true
在eclipse中編譯出現較多問題:
(1)Repository Path 'D:\eclipse\workspace\spring-boot\spring-boot-project\spring-boot-starters\spring-boot-starter\target\classes' does not exist.
Classes缺乏,增長便可
(2)Repository Path ' D:\eclipse\workspace\spring-boot\spring-boot-project\spring-boot-starters\spring-boot-starter-logging\target\classes' does not exist.
Classes缺乏,增長便可
(3)copy (include-loader-jar) on project spring-boot-loader-tools: Artifact has not been packaged yet. When used on reactor artifact, copy should be executed after packaging: see MDEP-187.
不怎麼影響使用,把maven庫的包刪除(D:\maven-repository\org\apache\maven\plugins\ maven-dependency-plugin),從新下載便可
(4) test (default-test) on project spring-boot: There are test failures.
執行maven –install時須要測試代碼,若是測試有錯誤,則報此錯誤,解決辦法是:
在<artifactId>maven-surefire-plugin</artifactId>後<configuration>增長一行:
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
另一個辦法是找到測試失敗的緣由,提示:sslWantsClientAuthenticationSucceedsWithoutClientCertificate(org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactoryTests) Time elapsed: 0.022 s <<< ERROR!
java.lang.IllegalArgumentException: The location [C:\Users\ADMINI~1\AppData\Local\Temp\tomcat.14722600924658181848.0] specified for the base directory is not a directory
這個目錄確實不存在了,手工新建一個。
若是在程序中新建,可使用:
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("C:\Users\ADMINI~1\AppData\Local\Temp\ tomcat.14722600924658181848.0");
return factory.createMultipartConfig();
}
只是在此處不適合。
(5)Failed to clean project: Failed to delete D:\eclipse\workspace\spring-boot\spring-boot-project\spring-boot-tools\target
進入這個目錄提示:
退出eclipse(等eclipse進程退徹底),這個目錄已經消失,從新進eclipse錯誤就沒有了。
一樣的錯誤發生在spring-boot-configuration-processor等多個項目,還存在一種狀況:在資源管理器中發現該目錄正常,手工刪除後解決(後來發現子目錄有問題,沒法進去)。
具體緣由未知,可能和磁盤有關。
2、Spring Framework源碼位置:
https://github.com/spring-projects/spring-framework
3、Spring Initializr源碼位置:
https://github.com/spring-io/initializr
1、快速生成
快速建立一個SpringBoot項目可使用Spring Initializr,有現成的,以下網址:
https://start.spring.io/
2、配置文件
先加載application.yml,再加載Application.properties,properties的配置會覆蓋yml的配置,也就是說yml的配置優先級低。
(1)mongodb配置
spring.data.mongodb.uri=mongodb://edison:123@localhost:27017/education
Mongo 2.x使用:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=edison
spring.data.mongodb.password=123
spring.data.mongodb.authentication-database=education
Mongo 3.0不支持:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
(2)日誌配置
#logging.pattern.console="%d - %msg%n"
logging.pattern.file='%d ***** %msg %n'
logging.path=d:/logs/
#logging.file='test.log'
最後一句無效,緣由未知。
在eclipseànewàproject…中新建一個demo項目,以下:
點Next>後以下:
修改項目信息,繼續點下一步後:
選擇依賴後點下一步:
這是總結,點finish後自動生成項目,須要自動下載包,建議設置maven mirror到阿里雲。
項目右鍵àdebug as…àmaven –build會前後出現兩個問題,參見第7節maven問題1、問題2;能夠直接項目右鍵à debug as…àSpring boot app啓動,不會出現上面兩個問題。
在瀏覽器chrome中輸入http://localhost:8080,以下:
增長一個控制器,以下
在瀏覽器中驗證,以下:
第一種方法:不使用eclipse自帶的maven,創建新的本地倉庫,運行maven –install後解決
第二種方法:把SpringBoot的版本從2.0.6改成2.0.5
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
刪除本地倉庫的autoconfigure,運行項目右鍵菜單mavenàUpdate project…
在eclipse點擊代碼右鍵按提示操做解決
刪除本地倉庫的autoconfigure,運行項目右鍵菜單mavenàUpdate project…
把application.properties或者application.yml移到config目錄中,有人認爲放在resources目錄中其實是錯的。
官方文檔說放在如下四個目錄:
(1)當前目錄的 「/config」的子目錄下
(2)當前目錄下
(3)classpath根目錄的「/config」包下
(4)classpath的根目錄下
緣由1:Application類和Controller類再也不一個包中,解決辦法:Application類和Controller類放到一個包中
緣由是JPA使用的Hibernate須要傳送java中的model名字,而不是使用表名,所以須要把:
@Query("select id,username,sex,address from User u where u.username=:name")
List<UserModel> findUser (@Param("name") String username);
改成:
@Query("select id,username,sex,address from UserModel u where u.username=:name")
List<UserModel> findUserModel(@Param("name") String username);
Description:
Field userDao in com.edison.dblib.CustomUserService required a bean of type 'com.edison.dblib.UserDao' that could not be found.
Action:
Consider defining a bean of type 'com.edison.dblib.UserDao' in your configuration.
解決:使用@Mapper註解
//@Repository
@Mapper
public interface UserDao {
public SysUser findByUserName(String username);
}
解決辦法:數據庫鏈接URL後,加上?serverTimezone=UTC
啓動器 |
功能 |
POM |
spring-boot-starter |
核心啓動器:自動配置支持,日誌,YAML |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> |
spring-boot-starter-activemq |
基於Apache ActiveMQ支持JMS消息 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> |
spring-boot-starter-amqp |
支持Spring AMQP和RabbitMQ |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-aop |
基於Spring AOP和AspectJ實現AOP |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-artemis |
基於Apache Artemis支持JMS消息 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-batch |
支持Apache Batch |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-cache |
支持Spring Framework中cache |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-cloud-connectors |
支持Spring Cloud Connectors,簡化到雲平臺的鏈接,例如Cloud Foundry,Heroku |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-cassandra |
支持Spring Data Cassandra和Cassandra分佈式數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-cassandra-reactive |
支持Spring Data Cassandra Reactive和Cassandra分佈式數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-couchbase |
支持Spring Data Couchbase和Couchbase文檔型數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-couchbase-reactive |
支持Spring Data Couchbase Reactive和Couchbase文檔型數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-elasticsearch |
支持Spring Data Elasticsearch和Elasticsearch搜索和分析引擎 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-jpa |
支持基於Hibernate的Spring Data JPA |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-ldap |
支持Spring Data LDAP |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-mongodb |
支持Spring Data MongoDB和MongoDB文檔型數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-mongodb-reactive |
支持Spring Data MongoDB Reactive和MongoDB文檔型數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-neo4j |
支持Spring Data Neo4j和Neo4j圖形數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-redis |
支持Spring Data redis和redis鍵值數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data- redis-reacive |
支持Spring Data redis reactive和redis內存數據庫 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-rest |
支持Spring Data rest和基於REST的Spring Data數據倉庫輸出 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-solr |
支持Spring Data solr和solr搜索引擎 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-data-freemarker |
基於freemarker視圖構建MVC web應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-groovy-templates |
基於groovy templates視圖構建MVC web應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-hateosa |
基於Spring MVC 和Spring HATEOSA構建基於RESTful的超媒體web應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-integration |
支持Spring integration |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jdbc |
支持基於HikariCP鏈接池的JDBC |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jersey |
基於JAX-RS 和Jersey構建基於RESTful的web應用。可替代 spring-boot-starter-web |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jooq |
基於jOOQ訪問SQL數據庫。可替代spring-boot-starter-jdbc或者spring-boot-starter-data-jpa |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-json |
讀寫JSON |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jta-atomikos |
基於Atomikos的JTA分佈式事務 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jta-bitronix |
基於Bitronix的JTA分佈式事務 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jta-narayana |
基於narayana的JTA分佈式事務 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-mail |
基於Spring Framework email sending支持JAVA Mail |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-mustache |
基於mustache視圖構建web應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-quartz |
基於quartz實現任務調度器 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-security |
支持Spring Security |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-test |
基於Junit、Hamcrest或者Mockito實現Spring Boot應用的測試 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-thymeleaf |
基於thymeleaf視圖構建MVC web應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-validation |
基於Hibernate Validator實現Java Bean校驗 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-web |
基於Spring MVC構建RESTful風格的web應用,使用內嵌tomcat做爲默認容器 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-web-services |
使用Spring Web Services |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-webflux |
基於Spring Framework的Reactive Web功能構建Webflux風格的web應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-websocket |
基於Spring Framework的Websocket功能構建WebSocket應用 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-actuator |
驅動器,用於生產準備,提供應用程序監控和管理功能。不一樣於此條目之上的應用程序啓動器,這是生產啓動器,惟一 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-jetty |
技術啓動器。使用jetty做爲內嵌servlet容器。可代替spring-boot-starter-tomcat |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-log4j2 |
技術啓動器。使用log4j2做爲日誌組件。可代替spring-boot-starter-logging |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter- logging |
技術啓動器。使用Logback做爲日誌組件。默認的日誌啓動器 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-reactive-netty |
技術啓動器。使用Reactive Netty做爲內嵌反應式Http服務器 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-tomcat |
技術啓動器。使用tomcat做爲內嵌servlet容器。被spring-boot-starter-web使用的默認servlet容器 |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
spring-boot-starter-undertow |
技術啓動器。使用undertow做爲內嵌servlet容器。可替代spring-boot-starter-tomcat |
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-?</artifactId> |
1、Boot註解
註解 |
解釋 |
@SpringBootApplication |
自動包括@Configuration、@EnableAutoConfiguration、@EnableWebMvc、@ComponentScan。屬於Spring Boot註解。 |
@SpringBootTest |
SpringBoot自1.4.0版本開始引入的一個用於測試的註解。classes屬性指定啓動類,SpringBootTest.WebEnvironment.RANDOM_PORT常常和測試類中@LocalServerPort一塊兒在注入屬性時使用。會隨機生成一個端口號。 |
@SpringBootConfiguration |
繼承自@Configuration。在Spring Boot項目中推薦使用@SpringBootConfiguration替代@Configuration |
@Configuration |
標註應用程序上下文。等同於Spring Framework的XML配置文件。使用註解能夠進行類型安全檢查 |
@EnableAutoConfiguration |
自動配置。告訴SpringBoot開始增長基於classpath的bean,和具備不一樣屬性設置的其餘bean |
@EnableWebMvc |
使能web應用,激活諸如設置DispatcherServlet等關鍵行爲。當SpringBoot發現classpath有spring-webmvc時,自動增長該標註 |
@ComponentScan |
自動尋找Java包中存在的其餘組件、配置和服務。可自動裝配bean。 |
@Component |
可配合CommandLineRunner使用。在SpringBoot應用程序啓動後執行基礎任務。註解在類上,表示通用bean,value不寫表示默認類名首字母小寫。 |
@Service |
業務層bean,註解在類上 |
@Repository |
數據訪問層bean,註解在類上 |
@Controller |
控制層bean,註解在類上 |
@ImportResource |
調用XML配置文件 |
@Autowired |
默認byType按類型注入(DI),默認屬性required=true,表示找不到匹配bean時自動拋出異常。和@Qualifier結合使用,則自動注入由byType變爲byName。註解在成員變量、方法和構造函數上。屬於Spring Framework |
@Resource |
默認byName按名稱注入(DI)。註解在成員變量、方法和構造函數上。屬於Java EE的註解 |
@Bean |
聲明當前方法返回一個bean。註解在方法上。 |
@Scope |
指定建立bean實例的方式。註解在類上。建立方式包括以下: (1)singleton: 表示在spring容器中的單例,經過spring容器得到該bean時老是返回惟一的實例。爲指定@Scope,默認此方式 (2)prototype:表示每次得到bean都會生成一個新的對象 (3)request:表示在一次http請求內有效(只適用於web應用) (4)session:表示在一個用戶會話內有效(只適用於web應用) (5)globalSession:表示在全局會話內有效(只適用於web應用) |
@value |
從配置文件中讀取值。註解在變量上。例如:@Value(value = 「#{message}」) |
@ConfigurationProperties |
給對象賦值,將註解轉換爲對象 |
@Profile |
在不一樣狀況下選擇實例化 |
@RestController |
自動包括@Controller和@ResponseBody |
@ResponseBody |
返回結果直接寫入 HTTP 響應正文(ResponseBody)中,通常在異步獲取數據時使用。在@RequestMapping 後,返回值一般解析爲跳轉路徑,加上@Responsebody 後返回結果就從跳轉路徑改成直接寫入HTTP 響應正文中。註解在方法中。 |
@Controller |
用於定義控制器類,在spring項目中由控制器負責將用戶發來的URL請求轉發到對應的服務接口(service層)。註解在類中,配合@RequestMapping。 |
@RequestBody |
該註解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,而後把相應的數據綁定到要返回的對象上;再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上。GET、POST和PUT判斷和處理不一樣。 |
@PathVariable |
綁定Request參數到Controller方法的參數中。Required=false能夠在value不存在時不拋出異常。URL:http://host:port/path/參數值 |
@RequestParam |
綁定Request參數到Controller方法的參數中。Required=false能夠在value不存在時不拋出異常。URL:http://host:port/path?參數名=參數值 |
@RequestMapping |
屬性有value(默認),method,consumes,produces,params,headers。 Value:請求相對url地址 Method:方法類型,忽略則自動斷定get或post Consumes:提交的內容類型 Produces:返回的內容類型 Params:請求必須包含的參數 Headers:請求必須包含的頭 |
@GetMapping |
同@RequestMapping(method = RequestMethod.GET) |
@PutMapping |
同@RequestMapping(method = RequestMethod.PUT) |
@PostMapping |
同@RequestMapping(method = RequestMethod.POST) |
@DeleteMapping |
同@RequestMapping(method = RequestMethod.DELTE) |
@EnableCaching |
加入Cache Manager |
@SuppressWarning |
移除警告 |
@Modifying |
表示數據庫操做是增刪改。和@Transactional一塊兒使用 |
@Query |
指定自定義查詢語句。支持JPQL或者原生SQL |
@RepositoryRestResource |
配合spring-boot-starter-data-rest使用。Spring Data REST自動建立此接口的實現後,@RepositoryRestResource註解讓Spring MVC在path處建立RESTful入口點。 |
@RunWith |
|
@AutoConfigureMockMvc |
|
@Test |
|
@AutoConfigureWebTestClient |
|
@DirtiesContext |
|
@MockBean |
|
@JsonTest |
|
@WebMvcTest |
|
@WebFluxTest |
|
@DataJpaTest |
|
@AutoConfigureTestDatabase |
|
@JooqTest |
|
@DataMongoTest |
|
@DataNeo4jTest |
|
@DataRedisTest |
|
@JdbcTest |
|
@Import |
|
@AutoConfigureRestDocs |
|
@LocalServerPort |
|
@TestConfiguration |
|
@Override |
|
@ImportAutoConfiguration |
|
@EnableBatchProcessing |
|
@ContextConfiguration |
|
@Value |
|
@PayloadRoot |
|
@ResponsePayload |
|
@Endpoint |
|
@RequestPayload |
|
@JsonCreator |
|
@JsonProperty |
2、JPA註解
註解 |
解釋 |
@Entity |
聲明類爲實體或表。 |
@Table |
聲明表名。和@Entity一塊兒使用,表示表名和實體名不一樣 |
@Basic |
指定非約束明確的各個字段。 |
@Embedded |
指定類或它的值是一個可嵌入的類的實例的實體的屬性。 |
@Id |
指定的類的屬性,用於識別(一個表中的主鍵)。 |
@GeneratedValue |
指定如何標識屬性能夠被初始化,例如自動、手動、或從序列表中得到的值。strategy=IDENTITY:自增加,strategy=AUTO:自動(默認),strategy=SEQUENCE:採用@SequenceGenerator的序列生成器,strategy=TABLE:使用表產生 |
@Transient |
表示不持久,即:該值永遠不會存儲在數據庫中。沒有此註解則表示默認@Basic |
@Basic |
持久的。fetch=FetchType.LAZY表示加載方式 |
@Column |
指定持久屬性欄屬性。屬性name:字段名,unique:是否惟一,nullable:是否空,Length:長度,insertable:是否可插入,updateable:是否可更新,columnDifinition:DDL,secondaryTable:從表名。 |
@Temporal |
和@Column一塊兒使用。屬性value:TemporalType.DATE:日期,TemporalType.TIME:時間,TemporalType.TIMESTAMP:時間戳 |
@JsonIgnore |
做用是json序列化時將Java bean中的一些屬性忽略掉,序列化和反序列化都受影響。 |
@JsonIgnoreProperties |
類註解,做用是json序列化時將java bean中的一些屬性忽略掉,序列化和反序列化都受影響 |
@JsonFormat |
用於屬性或者方法上(最好是屬性上),能夠方便的把Date類型直接轉化爲咱們想要的模式,好比@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss") |
@JsonSerialize |
此註解用於屬性或者getter方法上,用於在序列化時嵌入咱們自定義的代碼,好比序列化一個double時在其後面限制兩位小數點。 |
@JsonDeserialize |
此註解用於屬性或者setter方法上,用於在反序列化時能夠嵌入咱們自定義的代碼,相似於上面的@JsonSerialize |
@JsonManagedReference |
放在父類中 |
@JsonBackReference |
放在子類中 |
@SequenceGenerator |
指定在@GeneratedValue註解中指定的屬性的值。它建立了一個序列。 |
@TableGenerator |
指定在@GeneratedValue批註指定屬性的值發生器。它創造了的值生成的表。 |
@AccessType |
這種類型的註釋用於設置訪問類型。若是設置@AccessType(FIELD),則能夠直接訪問變量而且不須要getter和setter,但必須爲public。若是設置@AccessType(PROPERTY),經過getter和setter方法訪問Entity的變量。 |
@JoinColumn |
指定一個實體組織或實體的集合。這是用在多對一和一對多關聯。 |
@UniqueConstraint |
指定的字段和用於主要或輔助表的惟一約束。 |
@ColumnResult |
參考使用select子句的SQL查詢中的列名。 |
@ManyToMany |
定義了鏈接表之間的多對多一對多的關係。對應hibernate配置文件 |
@ManyToOne |
定義了鏈接表之間的多對一的關係。對應hibernate配置文件 |
@OneToMany |
定義了鏈接表之間存在一個一對多的關係。對應hibernate配置文件 |
@OneToOne |
定義了鏈接表之間有一個一對一的關係。對應hibernate配置文件 |
@NamedQueries |
指定命名查詢的列表。 |
@NamedQuery |
指定使用靜態名稱的查詢。 |