1. 程式人生 > >spring註解大全解析 spring springboot註解等

spring註解大全解析 spring springboot註解等

今天整理了一下spring常用到的註解: 希望可以幫到你們喲! @Service用於標註業務層元件 @Controller用於標註控制層元件(如struts中的action) @Repository用於標註資料訪問元件,即DAO元件 @Component泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。 @Autowired後不需要getter()和setter()方法,Spring也會自動注入。   在介面前面標上@Autowired註釋使得介面可以被容器注入,如:
  1. @Autowired
  2. @Qualifier("chinese")  
  3. private Man man;   
當介面存在兩個實現類的時候必須使用@Qualifier
指定注入哪個實現類,否則可以省略,只寫@Autowired。 使用@Autowired時你的OrganDaoIbatis 必須以@Service或@Component註解才行。 之前使用者使用的是3個註解註解他們的main類。分別是@Configuration,@EnableAutoConfiguration,@ComponentScan。由於這些註解一般都是一起使用,spring boot提供了一個統一的註解@SpringBootApplication @SpringBootApplication = (預設屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan
  1. @SpringBootApplication
  2. publicclass ApplicationMain {  
  3. publicstaticvoid main(String[] args) {  
  4.         SpringApplication.run(Application.class, args);  
  5.     }  
  6. }  
同等於:
  1. @Configuration
  2. @EnableAutoConfiguration
  3. @ComponentScan
  4. publicclass ApplicationMain {  
  5. publicstaticvoid main(String[] args) {  
  6.         SpringApplication.run(Application.class, args);  
  7.     }  
  8. }  
分開解釋@Configuration,@EnableAutoConfiguration,@ComponentScan。 1、@Configuration:提到@Configuration就要提到他的搭檔@Bean。使用這兩個註解就可以建立一個簡單的spring配置類,可以用來替代相應的xml配置檔案。 派生到我的程式碼片
  1. <beans>
  2. <beanid = "car"class="com.test.Car">
  3. <propertyname="wheel"ref = "wheel"></property>
  4. </bean>
  5. <beanid = "wheel"class="com.test.Wheel"></bean>
  6. </beans>
相當於: 派生到我的程式碼片
  1. @Configuration
  2. publicclass Conf {  
  3. @Bean
  4. public Car car() {  
  5.         Car car = new Car();  
  6.         car.setWheel(wheel());  
  7. return car;  
  8.     }  
  9. @Bean
  10. public Wheel wheel() {  
  11. returnnew Wheel();  
  12.     }  
  13. }  
@Configuration的註解類標識這個類可以使用Spring IoC容器作為bean定義的來源。@Bean註解告訴Spring,一個帶有@Bean的註解方法將返回一個物件,該物件應該被註冊為在Spring應用程式上下文中的bean。 2、@EnableAutoConfiguration:能夠自動配置spring的上下文,試圖猜測和配置你想要的bean類,通常會自動根據你的類路徑和你的bean定義自動配置。 3、@ComponentScan:會自動掃描指定包下的全部標有@Component的類,並註冊成bean,當然包括@Component下的子註解@Service,@Repository,@Controller。
  1. @ResponseBody 
用該註解修飾的函式,會將結果直接填充到HTTP的響應體中,一般用於構建RESTful的api;
  1. @Controller 
用於定義控制器類,在spring 專案中由控制器負責將使用者發來的URL請求轉發到對應的服務介面(service層)。
  1. @RestController 
@ResponseBody和@Controller的合集
  1. @RequestMapping 
提供路由資訊,負責URL到Controller中的具體函式的對映。
  1. @EnableAutoConfiguration 
Spring Boot自動配置(auto-configuration):嘗試根據你新增的jar依賴自動配置你的Spring應用。例如,如果你的classpath下存在HSQLDB,並且你沒有手動配置任何資料庫連線beans,那麼我們將自動配置一個記憶體型(in-memory)資料庫”。你可以將@EnableAutoConfiguration或者@SpringBootApplication註解新增到一個@Configuration類上來選擇自動配置。如果發現應用了你不想要的特定自動配置類,你可以使用@EnableAutoConfiguration註解的排除屬性來禁用它們。例子程式碼如下:
  1. @ComponentScan 
表示將該類自動發現(掃描)並註冊為Bean,可以自動收集所有的Spring元件,包括@Configuration類。我們經常使用@ComponentScan註解搜尋beans,並結合@Autowired註解匯入。
  1. @Configuration 
相當於傳統的xml配置檔案,如果有些第三方庫需要用到xml檔案,建議仍然通過@Configuration類作為專案的配置主類——可以使用@ImportResource註解載入xml配置檔案。
  1. @SpringBootApplication 
相當於@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。
  1. @Import 
用來匯入其他配置類。
  1. @ImportResource 
用來載入xml配置檔案。
  1. @Autowired 
自動匯入依賴的bean
  1. @Service 
一般用於修飾service層的元件
  1. @Repository 
使用@Repository註解可以確保DAO或者repositories提供異常轉譯,這個註解修飾的DAO或者repositories類會被ComponetScan發現並配置,同時也不需要為它們提供XML配置項 使用mybatis註解需要的配置。如下面的程式碼所示,使用@MapperScan來掃描註冊mybatis資料庫介面類,其中basePackages屬性表明介面類所在的包,sqlSessionTemplateRef表明介面類使用的SqlSessionTemplate。如果專案需要配置兩個資料庫,@MapperScan也需要分別配置。 加入QQ交流群一起學習:415777345