1、spring注解学习(组件注册)——@Configuration、@Bean给容器中注册组件
1、创建一个maven工程
2、创建一个Person类
3、导入spring-context依赖
导入依赖后:
一:配置文件注册一个Bean的方式:
1、创建一个全局spring配置文件
2、在配置文件中注册一个Person
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> <bean id="person" class="com.atguigu.bean.Person"> <property name="age" value="18"></property> <property name="name" value="zhangsan"></property> </bean> </beans>
3、创建一个测试类,方法里写获取Bean的代码
//配置文件方式 ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); Person person = (Person) applicationContext.getBean("person"); System.out.println(person);
二、配置类注册一个Bean的方式
1、创建spring的全局配置类
2、在配置类里进行注解配置
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.atguigu.bean.Person; //配置类==配置文件 @Configuration //告诉Spring这是一个配置类 public class MainConfig { //给容器注册一个Bean;类型为返回值类型(bean的id默认是用方法名作为id) //@Bean("")增加内容后指定bean的id @Bean("person") public Person person() { return new Person("张三", 19); } }
3、注解方式获取Bean
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class); Person person = applicationContext.getBean(Person.class); System.out.println(person);