溫馨提示×

溫馨提示×

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

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

SpringBoot2.0中@Configuration注解有什么用

發(fā)布時間:2021-08-06 15:13:35 來源:億速云 閱讀:180 作者:Leah 欄目:編程語言

SpringBoot2.0中@Configuration注解有什么用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

  1. 通過配置文件beans.xml配置user和dog的bean

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="user01" class="com.dashi.bean.User">
        <property name="name" value="zhangsan"/>
        <property name="age" value="18"/>
    </bean>
    
    <bean id="dog01" class="com.dashi.bean.Pet">
        <property name="name" value="哈利"/>
    </bean>
    
    </beans>


  2. 創(chuàng)建ApplicationContext獲取user bean

    /**
             * spring方式通過getbean
             /*
             public static void main(String[] args) {
             ApplicationContext ac = new FileSystemXmlApplicationContext("classpath:beans.xml");
             User user01 = (User) ac.getBean("user01");
             }現(xiàn)在我們通過原始的spring的方式去管理這兩個bean**


  • 接下來我們通過spring boot的@Configuration注解來實現(xiàn)bean的管理

    1. 創(chuàng)建配置類MyConfig(該名稱可以自定義),該類通過@Configuration注解

      通過@Configuration注解的類就相當(dāng)于spring的beans.xml文件,通過@Bean注解的方法即為一個個的bean。bean中的屬性即為spring中的property屬性

      /**
       * 相當(dāng)于spring中的bean.xml的<bean id="user01"></bean>
       */
      @Configuration
      public class Myconfig {
      
          //方法的名稱就是spring bean中的bean id 該方法為”user01“,屬性為property
          @Bean
          public User user01(){
              return new User("zhangsan",18);
          }
      
          //方法的名稱就是spring bean中的bean id 該方法為”dogPet“ 屬性為property
          @Bean
          public Pet dogPet(){
              return new Pet("tom");
          }
      }


    2. 得到user和Pet的實體類

      @SpringBootApplication
      public class MainApplication {
          public static void main(String[] args) {
              //SpringApplication.run(MainApplication.class);
              ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class);
      //        String[] names = run.getBeanDefinitionNames();
      //        for(String name:names){
      //            System.out.println(name);
      //        }
      
              User user01 = run.getBean("user01", User.class);
              System.out.println(user01.getName());
              Pet dogPet = run.getBean("dogPet", Pet.class);
              System.out.println(dogPet.getName());
      
          }
      }


    3. 運行結(jié)果如下:

        .   ____          _            __ _ _
       /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
      ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
       \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
        '  |____| .__|_| |_|_| |_\__, | / / / /
       =========|_|==============|___/=/_/_/_/
       :: Spring Boot ::        (v2.0.6.RELEASE)
      
      2021-05-09 10:45:08.692  INFO 15880 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
      2021-05-09 10:45:08.692  INFO 15880 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
      2021-05-09 10:45:09.136  INFO 15880 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
      2021-05-09 10:45:09.758  INFO 15880 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8888 (http) with context path ''
      2021-05-09 10:45:09.786  INFO 15880 --- [           main] com.dashi.MainApplication                : Started MainApplication in 4.501 seconds (JVM running for 7.13)
      
      zhangsan
      tom


看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI