乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用Java方式配置Spring

       路人甲Java 2021-05-16

      我們之前使用的Spring的XMl配置創(chuàng)建管理Bean,但Spring支持Java方式實(shí)現(xiàn)這個(gè)功能!

      JavaConfig原來是 Spring 的一個(gè)子項(xiàng)目,它通過 Java 類的方式提供 Bean 的定義信息,在Spring4之后的版本, JavaConfig已正式成為Spring的核心功能 。

      image-20210120172902668

      JavaConfig的核心注解@Configuration,它的源碼如下

      @Target(ElementType.TYPE)
      @Retention(RetentionPolicy.RUNTIME)
      @Documented
      @Component
      public @interface Configuration {
          @AliasFor(annotation = Component.class)
      String value() default "";
          
      boolean proxyBeanMethods() default true;
      }
      

      通過源碼我們可以看出:

      @Configuration是元注解,它有很多其他的注解實(shí)現(xiàn),有一個(gè)就是@Component,說明它也會(huì)被Spring容器托管,注冊到容器中。

      @Configuration代表這是一個(gè)配置類,就和Spring的applicationContext.xml一樣

      1、創(chuàng)建Bean

      1. 編寫一個(gè)實(shí)體類

        @Component // 添加@Component注解,交給Spring托管
        public class User {
            private String name;
        
            @Override
            public String toString() {
                return "User{" +
                        "name='" + name + '\'' +
                        '}';
            }
        
            public String getName() {
                return name;
            }
        
            public void setName(String name) {
                this.name = name;
            }
        }
        
      2. 新建一個(gè)config包,編寫一個(gè)AppConfig類

        @Configuration // @Configuration表示這是一個(gè)配置類
        public class AppConfig {
            // 通過方法注冊一個(gè)bean。
            // 方法的返回值就Bean的類型,方法名就是bean的id!
            @Bean
            public User getUser(){
                return new User(); // 返回要注入到Bean的對象
            }
        }
        

        上面的getUser()方法就相當(dāng)于XML的

        <beans>
            <bean id="myService" class="com.acme.services.MyServiceImpl"/>
        </beans>
        
      3. 測試

        @Test
        public void test01() throws Exception{
            // 使用AnnotationConfigApplicationContext獲取容器
            ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
            User user = context.getBean("getUser");
            System.out.println(user);
        }
        

      2、其他配置

      2.1、導(dǎo)入其他配置類

      @Configuration
      @Import({WebConfig.class})
      public class AppConfig {
          //bean definition...
      }
      

      它就相當(dāng)于

      <beans>
          <import resource="WebConfig.xml"/>
      </beans>
      

      2.2、配置包注解掃描

      @Configuration
      @ComponentScan("com.acme.app.services")
      public class AppConfig {
          // various @Bean definitions ...
      }
      

      它就相當(dāng)于

      <context:component-scan base-package="com.acme.app.services"/>
      

      2.3、其他詳細(xì)配置

      關(guān)于javaConfig的方式,詳情請見這篇博客:使用JavaConfig形式配置Spring框架,了解一下

      關(guān)于這種Java類的配置方式,我們在之后的SpringBoot 和 SpringCloud中還會(huì)大量看到,我們需要知道這些注解的作用即可!

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多