1.在spring配置文件中进行注解开发
1.需要在application配置文件中添加代码
<context:component-scan base-package="factory"></context:component-scan>
2.package表示需要扫描的包
在类开头添加注解@Component(“xxx”),xxx填写bean名称
2.使用java配置类进行注解开发
1.@Configuration表示此类作为spring配置类
@ComponentScan(“factory”)表示需要扫描的包
2.并且,在主程序中,需要修改容器的获取方式,使用AnnotationConfigApplicationContext获取
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(springConfig.class);
3.注解开发
@Component(“xxx”)使用注解开发时,需要在类名上进行添加,xxx为bean名。
@Autowired,表示为自动装配注入。
@Qualifier(“xxx”),当含有多个bean存在类中,自动注入将不知道注入谁,xxx表示为指定的bean。
@Value(),表示为简单类型注入数据。
@PropertySource(“xxx”),在配置类中开头使用,可以引入property文件,xxx表示为文件的路径。
4.引入第三方bean
需要使用@bean,其中返回值DataSource 为bean名。
使用这种方法注入bean,将需要注入的bean填写在形参上就行。
@Bean
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
druidDataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
druidDataSource.setUsername("root");
druidDataSource.setPassword("root");
return druidDataSource;
}
因为在java配置类中书写会比较麻烦,不简洁,可以新建一个java配置类,里面主要书写第三方bean代码。
只需要在主java配置类开头@import(“xxx”)xxx为另一个java配置类的名称+class。
总结
1.换别的包进行开发时,忘了在java配置类中添加扫描新包,获取不到指定bean对象,导致浪费时间。
@ComponentScan(“xxxx”),为需要扫描的包名。