欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于@Component注解的含義說明

 更新時(shí)間:2021年11月18日 11:14:18   作者:Thinkingcao  
這篇文章主要介紹了關(guān)于@Component注解的含義說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、注解分類

1、@controller:controller控制器層(注入服務(wù))

2、@service:service服務(wù)層(注入dao)

3、@repository:dao持久層(實(shí)現(xiàn)dao訪問)

4、@component:標(biāo)注一個(gè)類為Spring容器的Bean,(把普通pojo實(shí)例化到spring容器中,相當(dāng)于配置文件中的<bean id="" class=""/>)

二、@Component 注解含義

@Component: 標(biāo)注Spring管理的Bean,使用@Component注解在一個(gè)類上,表示將此類標(biāo)記為Spring容器中的一個(gè)Bean。

三、基于@Component擴(kuò)展的注解

@Repository

@Repository本身是基于@Component注解的擴(kuò)展,被@Repository注解的POJO類表示DAO層實(shí)現(xiàn),從而見到該注解就想到DAO層實(shí)現(xiàn),使用方式和@Component相同;

@Service

@Service本身是基于@Component注解的擴(kuò)展,被@Service注解的POJO類表示Service層實(shí)現(xiàn),從而見到該注解就想到Service層實(shí)現(xiàn),使用方式和@Component相同;

@Controller

@Controller本身是基于@Component注解的擴(kuò)展,被@Controller注解的類表示W(wǎng)eb層實(shí)現(xiàn),從而見到該注解就想到Web層實(shí)現(xiàn),使用方式和@Component相同;

Tips:使用@Component,@Service,@Controller,@Repository注解的類,表示把這些類納入到spring容器中進(jìn)行管理,同時(shí)也是表明把該類標(biāo)記為Spring容器中的一個(gè)Bean。

四、component的掃描組件

下面寫這行配置是引入component的掃描組件

<context:component-scan base-package=”com.mmnc”> 

其中base-package為指定需要掃描的包(含所有子包) ,掃描被@Service、@Controller、@Repository、@Component等注解標(biāo)注的Java類,將其掃描注入到Spring容器,注入成Bean:

  • @Service用于標(biāo)注業(yè)務(wù)層組件
  • @Controller用于標(biāo)注控制層組件(如struts中的action)
  • @Repository用于標(biāo)注數(shù)據(jù)訪問組件,即DAO組件.
  • @Component泛指組件,當(dāng)組件不好歸類的時(shí)候,我們可以使用這個(gè)注解進(jìn)行標(biāo)注,標(biāo)識為一個(gè)Bean。

五、方法初始化和銷毀

從Java EE5規(guī)范開始,Servlet增加了兩個(gè)影響Servlet生命周期的注解: @PostConstruct和@PreConstruct ,這兩個(gè)注解被用來修飾一個(gè)非靜態(tài)的void()方法,而且這個(gè)方法不能有拋出異常聲明,標(biāo)注方法的初始化和銷毀,當(dāng)你需要在系統(tǒng)啟動時(shí)提前設(shè)置一下變量或者設(shè)置值操作時(shí),可以使用@PostConstruct注解進(jìn)行項(xiàng)目啟動時(shí)設(shè)置來完成,當(dāng)你需要處理關(guān)閉資源或者發(fā)送通知相關(guān)操作時(shí)可以使用@PreConstruct 完成。

1. @PostConstruct注解

被@PostConstruct修飾的方法會在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會被服務(wù)器調(diào)用一次,類似于Servlet的inti()方法。被@PostConstruct修飾的方法會在構(gòu)造函數(shù)之后,init()方法之前運(yùn)行。

2. @PreDestroy注解

被@PreDestroy修飾的方法會在服務(wù)器卸載Servlet的時(shí)候運(yùn)行,并且只會被服務(wù)器調(diào)用一次,類似于Servlet的destroy()方法。被@PreDestroy修飾的方法會在destroy()方法之后運(yùn)行,在Servlet被徹底卸載之前。

加載順序如圖:

在Spring中可以使用以下方式指定初始化方法和銷毀方法(方法名任意):

//對象創(chuàng)建并賦值之后調(diào)用
@PostConstruct
public void init() { 
  System.out.println("對象創(chuàng)建并賦值之后調(diào)用...");
} 

//容器移除對象之前
@PreDestroy
public void detory(){
 System.out.println("容器移除對象之前執(zhí)行...");
}

3. 示例

@Controller
@Lazy(false)
public class ServletInit { 
 @Autowired
 private PCASigninServlet  pcaSigninServlet;
 @Autowired
 private PCASignoutServlet pcaSignoutServlet;
 @Autowired
 private PCAInitServlet pcaInitServlet;
 @Autowired
 private PCALogoutServlet pcaLogoutServlet;
 @Autowired
 private PCAInfoServlet pcaInfoServlet;
 @Autowired
 private HelloServlet helloServlet; 
 @Autowired @Qualifier("handler")
 private WebAppContext webapp; 
 
 @PostConstruct
 void init(){
      Server server = new Server(8848);
         ServletContextHandler contextHander = new ServletContextHandler(ServletContextHandler.SESSIONS);  
         contextHander.setContextPath("/");  
         System.out.println("start init");
         HandlerCollection hc =new HandlerCollection();  
         hc.setHandlers(new Handler[]{webapp, contextHander});
         server.setHandler(hc);  
         System.out.println("addServlet /hello");
         contextHander.addServlet(new ServletHolder(helloServlet), "/hello");
         contextHander.addServlet(new ServletHolder( pcaSigninServlet), "/pca/signin");  
            contextHander.addServlet(new ServletHolder( pcaSignoutServlet), "/pca/signout");
            contextHander.addServlet(new ServletHolder( pcaInitServlet), "/pca/init");      
            contextHander.addServlet(new ServletHolder( pcaLogoutServlet), "/pca/logout");  
            contextHander.addServlet(new ServletHolder( pcaInfoServlet), "/pca/info");    
         try
   {
          System.out.println("server start");
    server.start();
    server.join();  
    System.out.println("server stop");
   } catch (Exception e)
   {
    e.printStackTrace();
   }  
 }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 聊聊spring boot的WebFluxTagsProvider的使用

    聊聊spring boot的WebFluxTagsProvider的使用

    這篇文章主要介紹了聊聊spring boot的WebFluxTagsProvider的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 分布式系統(tǒng)中的降級熔斷設(shè)計(jì)問題面試

    分布式系統(tǒng)中的降級熔斷設(shè)計(jì)問題面試

    這篇文章主要為大家介紹了分布式系統(tǒng)中的降級熔斷設(shè)計(jì)問題面試解答,有需要的朋友可以借鑒參考下,希望能有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 簡析Java中的util.concurrent.Future接口

    簡析Java中的util.concurrent.Future接口

    這篇文章主要介紹了簡析Java中的util.concurrent.Future接口,作者把future歸結(jié)為在未來得到目標(biāo)對象的占位符,需要的朋友可以參考下
    2015-07-07
  • MyBatis多對多映射初識教程

    MyBatis多對多映射初識教程

    這篇文章重點(diǎn)給大家介紹mybatis多對多映射,多對多映射的例子也很常見,本文通過代碼實(shí)例相結(jié)合的方式給大家介紹mybatis多對多映射,需要的朋友參考下吧
    2016-08-08
  • java并發(fā)容器ConcurrentHashMap深入分析

    java并發(fā)容器ConcurrentHashMap深入分析

    這篇文章主要為大家介紹了java并發(fā)容器ConcurrentHashMap使用示例及深入分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 帶著新人看java虛擬機(jī)01(推薦)

    帶著新人看java虛擬機(jī)01(推薦)

    這篇文章主要介紹了java虛擬機(jī),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 利用exe4j生成java的exe文件

    利用exe4j生成java的exe文件

    本文主要介紹了利用exe4j生成java的exe文件,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java數(shù)組拷貝的幾種方法小結(jié)

    Java數(shù)組拷貝的幾種方法小結(jié)

    本文主要介紹了Java數(shù)組拷貝的幾種方法小結(jié),包括for循環(huán)、System.arraycopy()、Arrays.copyOf()、Arrays.copyOfRange()和clone()方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java基數(shù)排序radix sort原理及用法解析

    Java基數(shù)排序radix sort原理及用法解析

    這篇文章主要介紹了Java基數(shù)排序radix sort原理及用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot整合Thymeleaf的方法

    SpringBoot整合Thymeleaf的方法

    這篇文章主要介紹了SpringBoot整合Thymeleaf的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評論