SpringBoot-Java的配置方式

  • SpringBoot 默认使用 Servlet3.0 可以没有 web.xml
  • 没有任何的 xml
  • 如果我们想要做一些自定义的配置
  • 比如数据库相关的配置,该如何配置
  1. 可以使用 Java 的配置方式

配置的演变

  • Spring1.0 时代:Spring 的配置都是使用 xml 的方式
  • Spring2.0 时代:引入了 注解,并未完全替代 xml
  • Spring 3.0 及以后:3.0 以后 Spring 的注解已经非常的完善了

Java的配置

  • SpringBoot 当中 Java的配置方式主要靠 Java类 和一些 注解 代替 xml
注解名称 作用
@Configuration 标记一个类,作为 配置类,代替 xml 文件
@Bean 标记在方法上,将方法的返回值,加入到 Bean容器,代替 <bean> 标签
@value 属性值注入,也就是设置值
@PropertySource 指定 读取 那个,外部属性配置文件
  • 创建一个配置文件 jdbc.properties,内容如下:
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
jdbc.username=root
jdbc.password=root

  • 引入 druid 数据库连接池依赖
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>
  • 创建 JdbcConfig 配置类
  • 引入 jdbc.properties
  • 代码如下:
/**
 * @author: BNTang
 */
@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 dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
  • 然后在控制器当中进行测试
  • 测试代码如下:
/**
 * @author: BNTang
 **/
@Controller
public class HelloController {

    @Autowired
    private DataSource dataSource;

    @RequestMapping("hello")
    @ResponseBody
    public String hello(){
        return "hello Java Config" + dataSource;
    }
}

posted @ 2020-10-06 19:44  BNTang  阅读(862)  评论(0编辑  收藏  举报