在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能 。
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.6.RELEASE</version> </dependency>
添加javaconfig,手动创建bean,再将创建好的Bean交给spring容器管理
@Configuration//相当于xml文件的bean标签 @ComponentScan(basePackages = "com.tedu.liyu")//<context:component-scan base-package="" > @PropertySource("classpath:db.properties")//引入依赖文件 public class IocJavaConfig { @Value("${mysql.username}") private String dataSourceName; @Value("${mysql.password}") private String dataSourcePassword; @Value("${mysql.url}") private String dataSourceUrl; @Value("${mysql.driverClassName}") private String dataSourceDriverClassName; @Bean public DruidDataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setName(dataSourceName); dataSource.setPassword(dataSourcePassword); dataSource.setUrl(dataSourceUrl); dataSource.setDriverClassName(dataSourceDriverClassName); return dataSource; } @Bean(initMethod = "init",destroyMethod = "destroy") public Person person(){ Person person = new Person(); person.setPersonName(dataSourceName); return person; } }
如上代码:
@Bean(initMethod = “init”,destroyMethod = “destroy”)其中initMethod为初始化时调用方法,destroyMethod 为IOC容器关闭后加载
init、destroy方法需要在修饰的类中添加
singleton:单例,只会在IOC容器中创建一次
prototype:多例,每次获取IOC容器都会new一个bean
在需要的类上添加如下注解:
@Scope("prototype")
//true:在使用时,才会加载 @Lazy(value = true)