小司机带你优雅的初始化Spring容器
首先定一个接口:StudentDao
package com.demo.ioce; public interface StudentDao { public void say(String something); }再定一个实现该接口的类 StudentImpl
package com.demo.ioce; public class StudentImpl implements StudentDao{ @Override public void say(String something) { System.out.println("A says "+something); } }
再是定一个Spring的配置文件类 AppConfig
package com.demo.ioce; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan(basePackages = "com.demo.ioce") public class AppConfig { @Bean(name = "StudentDao") public StudentDao getStudentDao() { return new StudentImpl(); } }
最后来一个测试
package com.demo.ioce; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = AppConfig.class) public class Main { @Autowired private StudentDao studentDao; @Test public void test() { studentDao.say("www"); } }
最后输出结果:
A says www
该初始化方法可以省去类似于一下过程:
ApplicationContext ctx = new ClassPathXmlApplicationContext("xxx.xml"); BookService bookservice = ctx.getBean(BookService.class);
和xml的配置,使用起来比较方便。