(二)Spring Boot-使用@Value获取配置文件配置项并结合@Bean注册组件到Spring

java代码方式配置

如果没有任何的xml,那么我们如果要配置-个Bean该怎么办? 比如我们要配置一个数据库连

接池,以前会这么配置:

<!-- 配置连接池-->

<bean id="dataSource" class=" com.alibaba.druid.pool.DruidDatasource"

init-method="init" destroy-method="close">

<property name="ur1" value="${jdbc.ur1}" />

<property name="username" value="${jdbc.username}" />

<property name "password" value="${jdbc.password}" />

</bean>

尝试java配置

java配置主要靠java类和一些注解,比较常用的注解有:

@Configuration: 声明一个类作为配置类,代替xm|文件

@Bean:声明在方法上,将方法的返回值加入Bean容器,代替标签

@value:属性注入

@propertysource: 指定外部属性文件

目标:

可以使用@Value获取配置文件配置项并结合@Bean注册组件到Spring

需求:

使用java代码配数据库连接池,并可以在处理器中注入并使用

步骤:

1.添加依赖:

2.创建数据库;

3.创建数据库连接参数的配置文件jdbc.properties :

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://127.0.0.1:3306/test

jdbc.usermane=root

jdbc.password=123456

4.创建配置类;

package test.config;

import com.alibaba.druid.pool.DruidDataSource;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

@Configuration

@PropertySource("classpath:jdbc.properties")

public class JdbcConfig {

​    @Value("${jdbc.url}")

​    String url;

​    @Value("${jdbc.driverClassName}")

​    String driverClassName;

​    @Value("${jdbc.usermane}")

​    String usermane;

​    @Value("${jdbc.password}")

​    String password;

​    @Bean

​    public DataSource dataSource(){

​        DruidDataSource druidDataSource= new DruidDataSource();

​        druidDataSource.setDriverClassName(driverClassName);

​        druidDataSource.setUsername(usermane);

​        druidDataSource.setPassword(password);

​        druidDataSource.setUrl(url);

​        return druidDataSource;

​    }

}

5.改造处理器类注入数据源并使用

@RestController

public class HelloController {

​    @Autowired

​    private DataSource dataSource;

​    @GetMapping("hello")

​    public String hello(){

​        System.*out*.println("DataSource="+dataSource);

​        return "hello,spring boot!";

​    }

}
posted @ 2021-08-18 10:50  只要不兔的学习笔记  阅读(376)  评论(0)    收藏  举报