91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot核心的注解是什么

發布時間:2021-10-25 16:17:40 來源:億速云 閱讀:171 作者:iii 欄目:開發技術

這篇文章主要講解了“Spring Boot核心的注解是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Spring Boot核心的注解是什么”吧!

Configuration

在Spring4以后,官方推薦使用 Java Config 來代替 Application.xml 聲明將Bean交給容器管理。在Spring Boot  中,Java Config 使用完全代替了application.xml 實現了xml的零配置, 開下面這個例子

實例

創建一個bean類

public class SomeBean {     public void doWork() {         System.out.println("do work...");     } }

其中,dowork是邏輯方法 再創建一個Config類

@Configuration public class Config {     @Bean     public SomeBean someBean() {         return new SomeBean();     } }

在這里,在Config類上添加了一個@configuration注解,可以理解為Spring中的配置類,其返回值為someBean,someBean方法上也添加了一個@bean注解,其返回對象也將會交由Spring容器進行管理。

簡單測試

public class Test {     public static void main(String[] args) {         ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);         SomeBean sb = context.getBean(SomeBean.class);         sb.doWork();     } }

這里,創建了一個AnnotationConfigApplicationContext對象,傳入了Config.class  后,得到了someBean對象。

do work...

擴展

一般的,一個完整的bean需要包括,id,class,initMethod,destroyMethod,·ref,scope。所以這里使用 Java  Config 進行相關的配置這些屬性。修改第一個例子代碼

public class SomeBean {      private void init() {         System.out.println("init...");     }      public void doWork() {         System.out.println("do work...");     }      private void destroy() {         System.out.println("destroy...");     }  }

增加,init,destroy方法

@Configuration public class Config {      @Bean(initMethod = "init",destroyMethod = "destroy")     public SomeBean someBean() {         return new SomeBean();     } }

在bean注解上,屬性指向對應的方法。

public class Test {     public static void main(String[] args) {         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);         SomeBean sb1 = context.getBean(SomeBean.class);         System.out.println(sb1);          SomeBean sb2 = context.getBean(SomeBean.class);         System.out.println(sb2);         context.close();     } }

輸出結果為

init... com.spring.SomeBean@16022d9d com.spring.SomeBean@16022d9d destroy...

這樣就完成了一個配置的生命周期。

@ComponentScan

@ComponentScan注解,用于類或接口上主要指定的掃描路徑,Spring會把指定路徑下帶有指定注解的類自動裝配到bean容器里,會被自動裝配的注解包括@Controller,@Service,@Component,@Repository等。其作用相當于,

<context:component-scan base-package=”com.maple.learn” />

配置。

基本使用

常用的屬性如下  basePackages,value,指定掃描路徑,如果為空,則以@ComponentScan注解的類所在的包掃描路徑。basePackageClasses:指定具體掃描的類  includeFilters:指定滿足Filter條件的類 excludeFilters:指定排除Filter條件的類  includeFilters和excludeFilters 的FilterType可選:ANNOTATION=注解類型  默認、ASSIGNABLE_TYPE(指定固定類)、ASPECTJ(ASPECTJ類型)、REGEX(正則表達式)、CUSTOM(自定義類型),自定義的Filter需要實現TypeFilter接口  @ComponentScan的常見的配置如下:

@ComponentScan(value="com.maple.learn",    excludeFilters = {@ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class)},    includeFilters = {@ComponentScan.Filter(type=FilterType.ANNOTATION,classes={Controller.class})}         ) public class SampleClass{    &hellip;&hellip; }

@EnableAutoConfiguration

其注解是一個組合注解, 其源碼如下

@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {      String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";      Class<?>[] exclude() default {};          String[] excludeName() default {};  }

其中最重要的是@Import(AutoConfigurationImportSelector.class)注解,借助AutoConfigurationImportSelector,@EnableAutoConfiguration  幫助Spring Boot 應用將所有符合條件的@Configuration 配置加載到IOC容器中,而最主要的還需要借助于 Spring  框架的一個工具類,SpringFactoriestLoader  將META-INF/spring.factories加載配置,spring.factories文件是一個典型的properties配置文件,配置格式為key=value形式,不過key和value都是完整的類名,例如

org.springframework.data.repository.core.support.RepositoryFactorySupport=org.springframework.data.jpa.repository.support.JpaRepositoryFactory

感謝各位的閱讀,以上就是“Spring Boot核心的注解是什么”的內容了,經過本文的學習后,相信大家對Spring Boot核心的注解是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

突泉县| 改则县| 济阳县| 太原市| 武冈市| 叙永县| 剑阁县| 商丘市| 泗水县| 阿城市| 天祝| 玉龙| 大关县| 绥芬河市| 湟源县| 宁都县| 新巴尔虎右旗| 修武县| 苗栗市| 湖口县| 衡阳市| 盐池县| 榆社县| 方城县| 永新县| 宜阳县| 三门县| 潍坊市| 芜湖市| 河曲县| 克拉玛依市| 介休市| 大荔县| 昭平县| 盐城市| 阿坝| 夏河县| 开阳县| 巩义市| 顺义区| 普安县|