1.@Configuration注解和@Bean注解(把类变成beans,类的方法变成bean)
package com.lixv.config;
import com.lixv.entity.Dog;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyConfig {
@Bean
public Dog getDog(){
return new Dog();
}
}
- @Configuration相当于根据MyConfig这个类创建了一个beans
- @Bean相当于MyConfig这个beans中的一个bean
- @Bean注解下,方法名称相当于bean的id,方法返回类型相当于bean的class
2.@import注解
package com.lixv.config;
import org.springframework.context.annotation.Import;
@Import(MyConfig.class)
public class MyConfig2 {
}
- @import注解相当于beans中的import标签,合并其他的beans类
3.使用
package com.lixv.dao;
import com.lixv.config.MyConfig;
import com.lixv.config.MyConfig2;
import com.lixv.entity.Dog;
import com.lixv.entity.Hello;
import com.lixv.entity.HelloSpring;
import com.lixv.entity.People;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Dog dog = context.getBean("dog", Dog.class);
System.out.println(dog);
}
@Test
public void test(){
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig2.class);
Dog getDog = context.getBean("getDog", Dog.class);
System.out.println(getDog);
}
}
- 当以类作为beans的时候,获取beans的方式不同,通过AnnotationConfigApplicationContext类来获取。