Java學習進階之Spring註解相關的面試題

2020-02-04     指尖上的代碼

Spring是一個開源的框架,由Apache公司開發,為了簡化企業級應用開發而生。很多企業在招聘過程中都會詢問求職者對Spring的掌握,因為它是目前比較流行的三大框架之一。接下來的重慶Java學習進階就給大家列舉面試前必須掌握的Spring常用註解。

Java配置類相關註解

@Configuration 聲明當前類為配置類,相當於xml形式的Spring配置(類上);

@Bean 註解在方法上,聲明當前方法的返回值為一個bean,替代xml中的方式(方法上);

@Configuration 聲明當前類為配置類,其中內部組合了@Component註解,表明這個類是一個bean(類上);

@ComponentScan 用於對Component進行掃描,相當於xml中的(類上);

@WishlyConfiguration 為@Configuration與@ComponentScan的組合註解,可以替代這兩個註解。

聲明bean的註解

@Component 組件,沒有明確的角色;

@Service 在業務邏輯層使用(service層);

@Repository 在數據訪問層使用(dao層);

@Controller 在展現層使用,控制器的聲明(C)。


注入bean的註解

@Autowired:由Spring提供;

@Inject:由JSR-330提供;

@Resource:由JSR-250提供;

都可以註解在set方法和屬性上,推薦註解在屬性上。

環境切換

@Profile 通過設定Environment的ActiveProfiles來設定當前context需要使用的配置環境(類或方法上)。

@Conditional Spring4中可以使用此註解定義條件話的bean,通過實現Condition接口,並重寫matches方法,從而決定該bean是否被實例化(方法上)。

切面(AOP)相關註解

Spring支持AspectJ的註解式切面編程。

@Aspect 聲明一個切面(類上)

使用@After、@Before、@Around定義建言(advice),可直接將攔截規則(切點)作為參數。

@After 在方法執行之後執行(方法上);

@Before 在方法執行之前執行(方法上);

@Around 在方法執行之前與之後執行(方法上);

@PointCut 聲明切點;

在Java配置類中使用@EnableAspectJAutoProxy註解開啟Spring對AspectJ代理的支持(類上)。

異步相關

@EnableAsync 配置類中,通過此註解開啟對異步任務的支持,敘事性AsyncConfigurer接口(類上)。

@Async 在實際執行的bean方法使用該註解來申明其是一個異步任務(方法上或類上所有的方法都將異步,需要@EnableAsync開啟異步任務)。


定時任務相關

@EnableScheduling 在配置類上使用,開啟計劃任務的支持(類上);

@Scheduled 來申明這是一個任務,包括cron,fixDelay,fixRate等類型(方法上,需先開啟計劃任務的支持)。

想了解更多高級Java工程師面試題,你可以關注「重慶千鋒」微信公眾號,定期發布技術熱點和行業趨勢分析,助力你快速入職。你也可以參加千鋒重慶Java培訓班,快速系統的學習進階,做企業需要的高職高能Java人才!

文章來源: https://twgreatdaily.com/zh-cn/MnT5FnABjYh_GJGVM8sD.html