最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年11月18日 11:14:18   作者:Thinkingcao  
這篇文章主要介紹了關(guān)于@Component注解的含義說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(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)識(shí)為一個(gè)Bean。

五、方法初始化和銷毀

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

1. @PostConstruct注解

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

2. @PreDestroy注解

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

加載順序如圖:

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

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

//容器移除對(duì)象之前
@PreDestroy
public void detory(){
 System.out.println("容器移除對(duì)象之前執(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)文章

  • java web在高并發(fā)和分布式下實(shí)現(xiàn)訂單號(hào)生成唯一的解決方案

    java web在高并發(fā)和分布式下實(shí)現(xiàn)訂單號(hào)生成唯一的解決方案

    這篇文章主要介紹了java web在高并發(fā)和分布式下實(shí)現(xiàn)訂單號(hào)生成唯一的解決方案,需要的朋友可以參考下
    2017-11-11
  • SpringMVC中ModelAndView用法小結(jié)

    SpringMVC中ModelAndView用法小結(jié)

    本文主要介紹了SpringMVC中ModelAndView用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • mybatis中sql語句CDATA標(biāo)簽的用法說明

    mybatis中sql語句CDATA標(biāo)簽的用法說明

    這篇文章主要介紹了mybatis中sql語句CDATA標(biāo)簽的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 解讀CommandLineRunner和@PostConstruct區(qū)別與應(yīng)用場(chǎng)景

    解讀CommandLineRunner和@PostConstruct區(qū)別與應(yīng)用場(chǎng)景

    這篇文章主要介紹了解讀CommandLineRunner和@PostConstruct區(qū)別與應(yīng)用場(chǎng)景,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • dom4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法

    dom4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猟om4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Spring @Component自定義注解實(shí)現(xiàn)詳解

    Spring @Component自定義注解實(shí)現(xiàn)詳解

    @Component是一個(gè)元注解,意思是可以注解其他類注解,如@Controller @Service @Repository @Aspect。官方的原話是:帶此注解的類看為組件,當(dāng)使用基于注解的配置和類路徑掃描的時(shí)候,這些類就會(huì)被實(shí)例化
    2022-09-09
  • 使用JavaSE來模擬斗地主

    使用JavaSE來模擬斗地主

    這篇文章主要介紹了使用JavaSE來模擬斗地主,對(duì)棋牌游戲有研究的同學(xué)可以參考一下
    2021-04-04
  • Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    本文主要介紹了Mybatis-plus獲取雪花算法生成的ID并返回生成ID,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 關(guān)于ZooKeeper原理剖析

    關(guān)于ZooKeeper原理剖析

    ZooKeeper是一種分布式、高可用性的協(xié)調(diào)服務(wù),主要用于幫助系統(tǒng)避免單點(diǎn)故障和建立可靠的應(yīng)用程序,它通過Leader、Follower和Observer的角色來協(xié)調(diào)節(jié)點(diǎn),并提供分布式協(xié)作服務(wù)和維護(hù)配置信息,ZooKeeper在HDFS、YARN、HBase、SmallFS和Kafka等大數(shù)據(jù)產(chǎn)品中都有廣泛的應(yīng)用
    2025-02-02
  • springboot 自定義屬性與加載@value示例詳解

    springboot 自定義屬性與加載@value示例詳解

    在SpringBoot框架中,自定義屬性通常通過application.properties文件配置,并使用@Value注解加載,雖然這是一種可行的方法,但存在一種更優(yōu)雅的實(shí)現(xiàn)方式,本文給大家介紹springboot 自定義屬性與加載@value的相關(guān)操作,感興趣的朋友一起看看吧
    2024-10-10

最新評(píng)論

株洲县| 定兴县| 丰原市| 广安市| 呼伦贝尔市| 莱州市| 韶关市| 宿松县| 巴彦淖尔市| 高淳县| 余江县| 龙游县| 蒙城县| 昆山市| 敖汉旗| 措美县| 阜康市| 阳朔县| 九江县| 女性| 军事| 常熟市| 易门县| 红安县| 搜索| 梧州市| 团风县| 北宁市| 小金县| 鄂伦春自治旗| 宁国市| 峨眉山市| 内黄县| 武川县| 贵阳市| 秦皇岛市| 项城市| 五家渠市| 色达县| 晋城| 仁寿县|