一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用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容器托管,注冊(cè)到容器中。

@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 {
        // 通過方法注冊(cè)一個(gè)bean。
        // 方法的返回值就Bean的類型,方法名就是bean的id!
        @Bean
        public User getUser(){
            return new User(); // 返回要注入到Bean的對(duì)象
        }
    }
    

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

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

    @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的方式,詳情請(qǐng)見這篇博客:使用JavaConfig形式配置Spring框架,了解一下

關(guān)于這種Java類的配置方式,我們?cè)谥蟮腟pringBoot 和 SpringCloud中還會(huì)大量看到,我們需要知道這些注解的作用即可!

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    又黄又硬又爽又色的视频 | 91在线国内在线中文字幕| 国产日本欧美韩国在线| 一区二区三区亚洲国产| 好吊视频一区二区在线| 色婷婷中文字幕在线视频| 欧美精品中文字幕亚洲| 欧美日韩三区在线观看| 久久精品a毛片看国产成人| 欧洲一区二区三区蜜桃| 人妻内射精品一区二区| 久草视频这里只是精品| 不卡一区二区在线视频| 69老司机精品视频在线观看| 国产色偷丝袜麻豆亚洲| 亚洲欧美日产综合在线网| 日本大学生精油按摩在线观看| 国产日韩欧美综合视频| 小草少妇视频免费看视频| 富婆又大又白又丰满又紧又硬 | 亚洲精品成人综合色在线| 无套内射美女视频免费在线观看| 91精品欧美综合在ⅹ| 日韩18一区二区三区| 欧美乱码精品一区二区三| 日韩一区二区三区18| 夫妻性生活黄色录像视频| 国产高清一区二区不卡| 国内尹人香蕉综合在线| 久久大香蕉精品在线观看| 色小姐干香蕉在线综合网| 麻豆果冻传媒一二三区| 亚洲男人的天堂就去爱| 国内九一激情白浆发布| 久久永久免费一区二区| 日韩在线视频精品视频| 免费在线观看欧美喷水黄片| 国产一级性生活录像片| 亚洲中文字幕在线乱码av| 不卡一区二区高清视频| 欧美久久一区二区精品|