java Spring @Configuration bean的产生
Posted Arvin_Wong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Spring @Configuration bean的产生相关的知识,希望对你有一定的参考价值。
从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
使用@Configuration,意味着对于简单的情况,不需要xml。
1.@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>
,作用为:配置spring容器(应用上下文)
package com.arvin.spring.config;
//相当于xml中的<beans>,作用为:配置spring容器(应用上下文)
@Configuration
public class SpringConfiguration
public SpringConfiguration()
System.out.println("Spring 容器初始化");
2.注册Bean
Bean类:
package com.arvin.spring.bean;
@Data
public class PersonBean
private Long id;
private String name;
public void say()
System.out.println("Hello world");
public void born()
System.out.println("born in "+new DateTime().toString("HH:mm:ss"));
public void die()
System.out.println("die in "+new DateTime().toString("HH:mm:ss"));
配置类:
package com.arvin.spring.config;
//相当于xml中的<beans>,作用为:配置spring容器(应用上下文)
@Configuration
public class SpringConfiguration
public SpringConfiguration()
System.out.println("Spring 容器初始化");
//@Scope(value="propotype")//spring默认单例,可以使用@Scope注解设为原型
//相当于<bean>,可以指定别名、初始化和销毁
@Bean(initMethod="born",destroyMethod="die")
public PersonBean personBean()
//真实返回的类
return new PersonBean();
测试:
package com.arvin.spring;
public class TestMain
public static void main(String[] args)
//@Configuration注解的spring容器加载方式,用AnnotationConfigApplicationContext替换ClassPathXmlApplicationContext
ApplicationContext annotationConfigApplicationContext
= new AnnotationConfigApplicationContext(SpringConfiguration.class);
beanName默认为方法名
PersonBean personBean = (PersonBean) annotationConfigApplicationContext.getBean("personBean");
System.out.println(personBean);//PersonBean(id=null, name=null)
或者使用@ComponentScan和@Component扫描注册Bean
package com.arvin.spring.config;
//相当于xml中的<beans>,作用为:配置spring容器(应用上下文)
@Configuration
//相当于<context:component-scan base-package="com.wangrong.spring.bean"/>
@ComponentScan(basePackages="com.arvin.spring.bean")
public class SpringConfiguration
public SpringConfiguration()
System.out.println("Spring 容器初始化");
package com.arvin.spring.bean;
@Data
@Component
public class PersonBean implements Person
private Long id;
private String name;
public void say()
System.out.println("Hello world");
public void born()
System.out.println("born in "+new DateTime().toString("HH:mm:ss"));
public void die()
System.out.println("die in "+new DateTime().toString("HH:mm:ss"));
参考:https://www.cnblogs.com/duanxz/p/7493276.html
以上是关于java Spring @Configuration bean的产生的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security getAuthentication() 返回 null
Spring 工具类 ConfigurationClassParser 分析得到配置类