标签:Java name Car class Configureation 注解 Config public
前言
@Configuration
用于定义配置类,可替换XML配置文件,被注解的类内部包含一个或多个@Bean
注解方法。可以被AnnotationConfigApplicationContext
或者AnnotationConfigWebApplicationContext
进行扫描。用于构建bean定义以及初始化Spring容器。
它是在spring3.0版本之后出现的。此注解是spring支持注解驱动开发的一个标志。表明当前类是spring的一个配置类,作用是替代spring的applicationContext.xml。但其本质就是@Component注解,被此注解修饰的类,也会被存入spring的IOC容器。
属性:
value:用于存入spring的ioc容器中Bean的id
使用场景:
在注解驱动开发时,用于缩写配置的类,通常可以使用此注解。一般情况下,我们的配置也会分为主次配置,@Configureation一般出现在主配置类上。值得注意的是,如果我们在注解驱动开发时,构建ioc容器使用的是传入字节码的构造函数,此注解可以省略,但是如果传入的是一个包,此注解则不能省略。
实例
@Configuration 加载Spring方法
Car.java
public class Car { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
定义Config类
@Configuration public class Config { public Config() { System.out.println("TestConfig容器初始化..."); } @Bean(name = "getMyCar") public Car getCar() { Car c = new Car(); c.setName("dankun"); return c; } }
实例化
public void testConfig() { ApplicationContext context = new AnnotationConfigApplicationContext(Config.class); Car car = (Car)context.getBean("car"); System.out.println(car.getName()); } // 输出 // TestConfig容器初始化... // dankun
@Configuration + @Component
@Configuration
也附带了@Component的功能。所以理论上也可以使用@Autowared
功能。上述代码可以改成下面形式
Car.java
@Component public class Car { @Value("dankun") private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Config.java
@Configuration @ComponentScan("com.wuyue.annotation") public class Config { public Config() { System.out.println("TestConfig容器初始化..."); } }
测试主入口
public class TestConfig { @Test public void testConfig() { ApplicationContext context = new AnnotationConfigApplicationContext(Config.class); Car car = (Car)context.getBean("car"); System.out.println(car.getName()); } } // 输出 // TestConfig容器初始化... // dankun
总结
- @Configuation等价于
<Beans></Beans>
- @Bean 等价于
<Bean></Bean>
- @ComponentScan等价于
<context:component-scan base-package="com.dxz.demo"/>
- @Component 等价于
<Bean></Bean>
分享链接:
工作之余,开了一个淘宝小店,分别销售日常必java教程备生活用品,期待您的光临!点击下图,跳转店铺首页!
标签:Java,name,Car,class,Configureation,注解,Config,public 来源: https://blog.csdn.net/chinaherolts2008/article/details/120098718
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。