在springBoot中虽然我们可以0 xml就可以快速实现一个SpringMVC的项目了,快速、高效 ,但是有些地方还是需要写一些配置文件的。比如说:我们要配置一个数据库连接池 在不用springBoot的时候我们是这样玩的。
<!-- 配置连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean>
但如果不用上面上面这种方式我应该怎么去做,于是经过一番思考,尝试去找spring的一些注解。
比较常用的注解有:
@Configuration: 声明一个类作为配置类,代替xml文件
@Bean:声明在方法上,将方法的返回值加入到Bean容器种,可以代替<bean>标签
@value :属性注入
@PropertSource:指定外部属性文件
接下来用java配置来尝试实现连接池配置 首先在pom 引入Druid连接池依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.6</version> </dependency>
然后创建一个 jdbc.properties文件,编写jdbc属性:
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/test jdbc.username=root jdbc.password=1234
这些搞定后就可以来编写我们的java代码了。
/**
*
* @Configuration //声明我们JdbcConfig是一个配置类
* @PropertySource("classpath:jdbc.properties") //指定属性文件的路径
是:classpath:jdbc.properties
* @Value("${}") //为属性注入值
* @Bean 通过@Bean将 dataSource()方法声明为一个注册Bean的方法,
* Spring会自动调用该方法,将方法的返回值加入Spring容器中。
*/
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
@Value("${jdbc.driverClassName}")
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("jdbc.password")
private String password;
@Bean
public DataSource getDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driverClassName);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
return druidDataSource;
}
}
写完调试:发现注入成功
发现还是觉得麻烦,还不如写xml呢? 于是为了追求更加简单,此时springBoot正式登场。
只是需要把jdbc.properties 改成application.properties。java类改动如下:
@Configuration
public class JdbcConfig {
/**
* 注解声明当前类为属性读取类 prefix="jdbc"读取属性文件中,前缀为jdbc的值。
* 此时springBoot就可以 DruidDataSource类自动寻找jdbc.后缀的属性,如果找到就会进行注入。
*/
@Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource getDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
}
发现又Ok,很开心。 springBoot 真的6 几行代码轻松搞定,