一、简介
在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能 。
二、环境准备
- 创建maven项目
- 添加依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
三、实例解析
1.@Configuration
添加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方法需要在修饰的类中添加
2.Bean的作用域
singleton:单例,只会在IOC容器中创建一次
prototype:多例,每次获取IOC容器都会new一个bean
在需要的类上添加如下注解:
@Scope("prototype")
3.懒加载
//true:在使用时,才会加载
@Lazy(value = true)