1. 基本介绍
public static void main(String[] args) {
SpringApplication.run(CommunityApplication.class, args);
}
上述的方法除了开启TomCat,自动创建了Spring容器,会自动扫描某些包下某些bean。
会扫描配置类所在包和子包带有注解的内容,一共有四个注解()
在测试代码中启用配置类
@ContextConfiguration(classes = CommunityApplication.class)
2. 得到Spring Ioc容器
实现接口 ApplicationContextAware
重写方法 setApplicationContext
把容器暂存为 applicationContext
当程序启动之后,applicationContext 就会被传进来自动进行记录
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
class CommunityApplicationTests implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
在测试方法中使用容器
@Test //从容器获取bean
public void testApplicationContext() {
System.out.println(applicationContext);
//通过接口名(类名)得到bean,@Primary 优先级高先被获取
AlphDao alphDao = applicationContext.getBean(AlphDao.class);
System.out.println(alphDao.select());
//通过名字得到bean,并转成AlphDAO类型
AlphDao alphDao1 = applicationContext.getBean("alphaHibernate", AlphDao.class);
System.out.println(alphDao1.select());
}
java.dao 包中内容
package com.psynowcoder.community.community.dao;
public interface AlphDao {
String select() ;
}
package com.psynowcoder.community.community.dao;
import org.springframework.stereotype.Repository;
@Repository("alphaHibernate") //给bean一个名字
public class AlphaDaoHibernateImpl implements AlphDao{
@Override
public String select() {
return "Hibernate";
}
}
package com.psynowcoder.community.community.dao;
import org.springframework.context.annotation.Primary;
import org.springframew