博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.spring 的纯注解配置
阅读量:3891 次
发布时间:2019-05-23

本文共 2333 字,大约阅读时间需要 7 分钟。

文章目录

1.@Configuration

作用:	用于指定当前类是一个 spring 配置类,当创建容器时会从该类上加载注解。获取容器时需要使用AnnotationApplicationContext(有@Configuration 注解的类.class)。	属性:	value:用于指定配置类的字节码

@Configuration

public class SpringConfiguration {
}
注意:
我们已经把配置文件用类来代替了,但是如何配置创建容器时要扫描的包呢?请看下一个注解。

2.@ComponentScan

作用:	用于指定 spring 在初始化容器时要扫描的包。作用和在 spring 的 xml 配置文件中的:
是一样的。属性: basePackages:用于指定要扫描的包。和该注解中的 value 属性作用一样。

@Configuration

@ComponentScan(“com.itheima”)
public class SpringConfiguration {
}
注意:
我们已经配置好了要扫描的包,但是数据源和 JdbcTemplate 对象如何从配置文件中移除呢?请看下一个注解。

3.@Bean

作用:	该注解只能写在方法上,表明使用此方法创建一个对象,并且放入 spring 容器。	属性:	name:给当前@Bean 注解方法创建的对象指定一个名称(即 bean 的 id)。
public class JdbcConfig {/*** 创建一个数据源,并存入 spring 容器中* @return*/@Bean(name="dataSource")public DataSource createDataSource() {	try {		ComboPooledDataSource ds = new ComboPooledDataSource();		ds.setUser("root");		ds.setPassword("1234");		ds.setDriverClass("com.mysql.jdbc.Driver");		ds.setJdbcUrl("jdbc:mysql:///spring_day02");		return ds;	} catch (Exception e) {		throw new RuntimeException(e);	}}/*** 创建一个 DBAssit,并且也存入 spring 容器中* @param dataSource* @return*/@Bean(name="dbAssit")public DBAssit createDBAssit(DataSource dataSource) {	return new DBAssit(dataSource);}}注意:我们已经把数据源和 DBAssit 从配置文件中移除了,此时可以删除 bean.xml 了。但是由于没有了配置文件,创建数据源的配置又都写死在类中了。如何把它们配置出来呢?请看下一个注解。

4.@PropertySource

作用:	用于加载.properties 文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。	属性:	value[]:用于指定 properties 文件位置。如果是在类路径下,需要写上 classpath:
public class JdbcConfig {	@Value("${jdbc.driver}")	private String driver;	@Value("${jdbc.url}")	private String url;	@Value("${jdbc.username}")	private String username;	@Value("${jdbc.password}")	private String password;}jdbc.properties 文件:	jdbc.driver=com.mysql.jdbc.Driver	jdbc.url=jdbc:mysql://localhost:3306/data	jdbc.username=root	jdbc.password=1234

注意:

此时我们已经有了两个配置类,但是他们还没有关系。如何建立他们的关系呢?请看下一个注解。

5. @Import

作用:	用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration 注解。当然,写上也没问题。	属性:	value[]:用于指定其他配置类的字节码。
@Configuration@ComponentScan(basePackages = "com.itheima.spring")@Import({ JdbcConfig.class})public class SpringConfiguration {}@Configuration@PropertySource("classpath:jdbc.properties")public class JdbcConfig{}注意:我们已经把要配置的都配置好了,但是新的问题产生了,由于没有配置文件了,如何获取容器呢?请看下一小节。

6.通过注解获取容器:

ApplicationContext ac = 		new AnnotationConfigApplicationContext(SpringConfiguration.class);

转载地址:http://rsphn.baihongyu.com/

你可能感兴趣的文章
软件架构入门
查看>>
80 多个 Linux 系统管理员必备的监控工具
查看>>
OOD的原则
查看>>
Tool to trace local function calls in Linux
查看>>
Linux 下查询 DNS 服务器信息
查看>>
ulimit 里的 file size 的 block 单位是多少?
查看>>
linux下查看端口对应的进程
查看>>
将 gdb 用作函数跟踪器 (Function Tracer)
查看>>
原 GCC一些有用的技巧
查看>>
yum 变量追加的方法
查看>>
2倍速的下一代Bluetooth,「Bluetooth 5」发布
查看>>
Top 10 “Yum” installables to be productive as a developer on Red Hat Enterprise Linux
查看>>
[小技巧] Vim 如果去除 “existing swap file” 警告
查看>>
如何在linux下检测内存泄漏
查看>>
十年生聚,Vim 8.0 发布了!
查看>>
【演歌】加賀の女 歌词翻译
查看>>
東京音頭 (东京音头) 歌词翻译
查看>>
Windows 7 下登录界面里 Ctrl + Alt + Del 无法使用
查看>>
惠山赏菊 & 梅园赏桂
查看>>
[小技巧] cat /proc/modules 显示的地址为 0
查看>>