栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用@Configuration 和@Bean给容器中注册组件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用@Configuration 和@Bean给容器中注册组件

一、使用@Configuration 和@Bean给容器中注册组件;

1、创建一个Maven工程,导入Spring的依赖



    org.springframework
    spring-webmvc
    5.1.10.RELEASE




    junit
    junit
    4.12




    org.projectlombok
    lombok
    1.18.24
    provided

使用配置文件测试;

先创建一个Person的类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {

    private String name;
    private int age;
}

紧接着,在工程的src/main/resources目录下创建Spring的配置文件,例如beans.xml,通过该配置文件将Person类注入到Spring的IOC容器中,该配置文件中的内容如下所示。




    
        
        
    


至此,我们使用XML配置文件的方式注入JavaBean就完成了。
接下来,在工程的test包下进行测试;创建MyTest测试类

public class MyTest {

    @Test
    public void Person(){
        //配置bean开发
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Person person = context.getBean("person", Person.class);
        System.out.println(person);

    }
}

使用注解测试:

新创建一个MyConfig的类,给类上添加注解

@Configuration  //告诉Spring这是一个配置类,相当于Bean.xml
public class MyConfig {

    @Bean("person01") //相当于我们的bean
    public Person person(){
        return  new Person("lisi",20);
    }
}

测试:

    @Test
    public void Person(){
//        //配置bean开发
//        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
//        Person person = context.getBean("person", Person.class);
//        System.out.println(person);


        ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
        Person bean = context.getBean(Person.class);
        System.out.println(bean);

        //根据类型获取到bean的名字;
        String[] beanNames = context.getBeanNamesForType(Person.class);
        for (String name : beanNames) {
            System.out.println(name);
        }


    }

小结

在类上添加@Configuration注解来标注该类是一个Spring的配置类,也就是告诉Spring它是一个配置类,最后通过@Bean注解将Person类注入到Spring的IOC容器中

我们在使用注解方式向Spring的IOC容器中注入JavaBean时,如果没有在@Bean注解中明确指定bean的名称,那么就会使用当前方法的名称来作为bean的名称;如果在@Bean注解中明确指定了bean的名称,那么就会使用@Bean注解中指定的名称来作为bean的名称。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号