快捷搜索: 王者荣耀 脱发

小司机带你优雅的初始化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的配置,使用起来比较方便。
经验分享 程序员 微信小程序 职场和发展