1.bean作用范围,使用@Scope定义bean作用范围
@Scope("singleton")
2.bean的生命周期,使用@PostConstruct注解初始化方法,@PreDestroy注解周期结束方法
3.依赖注入,使用@Autowired注解开启自动装配模式(按类型),通常注解引用类型
@Autowired解决引用类型注入
@Qualifier指定注入的bean的名称
@Value解决基本类型注入
自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
自动装配建议使用无参构造方法创建对象,如果不提供对应构造方法,请提供唯一(不要有多个构造方法)的构造方法
4.加载properties文件,使用@PropertySource注解加载properties文件
在配置类上用@PropertySource("classpath:jdbc.properties")
注意路径仅支持单一文件配置,多文件配置请使用数组格式配置,不允许使用通配符*
5.注解开发管理第三方bean
使用@Bean配置第三方bean;
使用独立的配置类管理第三方bean
public class JdbcConfig { //1.定义一个方法获得要管理的对象 //2.添加@Bean表示当前方法的返回值是一个bean @Bean public DataSource dataSource(){ DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/spring_db"); ds.setUsername("root"); ds.setPassword("root"); return ds; } }
将独立的配置类加入核心配置,使用@Import注解手动加入配置类,此注解只能添加一次,多个数据请用数组格式
@Configuration @Import({JdbcConfig.class}) public class SpringConfig { }
6.注解开发实现为第三方bean注入资源
简单类型依赖注入
@Value("com.mysql.jdbc.Driver") private String driver; @Value("jdbc:mysql://localhost:3306/spring_db") private String url; @Value("root") private String username; @Value("root") private String password;
引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象