在对Spring进行测试(多线程环境)时发现ExpertBlogService一直注入失败,后来发现多线程环境下Spring是不会对新线程进行管理的,所以需要我们手动加载配置文件,另外将加载部分部分放进静态块中防止多次加载,代码如下:
private static ApplicationContext ctx = null;
private static ExpertBlogService expertBlogService;
private static ExpertBlogMapper expertBlogMapper;
//When you use @Autowired in a new thread,you will get a nullpointerExceptionstatic {
ctx = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
expertBlogMapper = (ExpertBlogMapper) ctx.getBean("expertBlogMapper");
expertBlogService = new ExpertBlogServiceImpl(expertBlogMapper);
}