zoukankan      html  css  js  c++  java
  • SpringBoot-Java配置

    尝试java配置

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

    • @Configuration:声明一个类作为配置类,代替xml文件
    • @Bean:声明在方法上,将方法的返回值加入Bean容器,代替<bean>标签
    • @Value:属性注入
    • @PropertySource:指定外部属性文件,

    我们接下来用java配置来尝试实现连接池配置:

    首先引入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://localhost:3306/saas-export?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=root
    

    然后编写代码:

    @Configuration
    @PropertySource("classpath:jdbc.properties")
    public class JdbcConfig {
    
        @Value("${jdbc.url}")
        String url;
        @Value("${jdbc.driverClassName}")
        String driverClassName;
        @Value("${jdbc.username}")
        String username;
        @Value("${jdbc.password}")
        String password;
    
        @Bean
        public DataSource dataSource() {
            DruidDataSource dataSource = new DruidDataSource();
            dataSource.setUrl(url);
            dataSource.setDriverClassName(driverClassName);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
            return dataSource;
        }
    }
    

    解读:

    • @Configuration:声明我们JdbcConfig是一个配置类, 类似于于一个 xml 配置文件的存在
    • @PropertySource:指定属性文件的路径是:classpath:jdbc.properties
    • 通过@Value为属性注入值
    • 通过@Bean将 dataSource()方法声明为一个注册Bean的方法,Spring会自动调用该方法,将方法的返回值加入Spring容器中。

    然后我们就可以在任意位置通过@Autowired注入DataSource了!

    我们在HelloController中测试:

    @RestController
    public class HelloController {
    
        @Autowired
        private DataSource dataSource;
    
        @GetMapping("hello")
        public String hello() {
            System.out.println("dataSource: " + dataSource);
            return "hello, spring boot!";
        }
    }
    

    然后打断点,Debug运行并查看:

    属性注入成功了!

    SpringBoot的属性注入

    SpringBoot强调的是约定大于配置,因此遵循约定,我们就能节省很多配置:

    • 首先,属性文件的名称有变化,文件名必须是:application.properties
    • 其次,要注入的属性的变量名要和配置文件中的属性名的最后一部分保持一致
    • 最后,要在类上声明这些属性在属性文件中的共同的前缀,并提供getter和setter方法

    修改属性文件名称

    属性文件的名称有变化,文件名必须是:application.properties,SpringBoot会自动加载这个文件,无需我们指定加载的文件的名称。

    将JdbcConfig中的注解//@PropertySource("classpath:jdbc.properties")可以去掉,测试后还是可以正常打印datasouce的信息

    Yaml配置文件

    基本用法

    配置文件除了可以使用application.properties类型,还可以使用后缀名为:.yml或者.yaml的类型,也就是:application.yml或者application.yaml
    正如YAML所表示的YAML Ain't Markup Language,YAML是一种简洁的非标记语言。 YAML以数据为中心,使用空白缩进,分行组织数据,从而使得表示更加简洁易读。

    基本格式:

    jdbc:
      driverClassName: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/saas-export?characterEncoding=utf-8
      username: root
      password: root
    

    如果两个配置文件都有,会把两个文件的配置合并,如果有重复属性,以Properties中的为准。

  • 相关阅读:
    isNUll ,对于sql中的一个表的description的NULL和空格的处理
    Thread类学习
    java学习计划
    HTTP请求过程(http是一种无状态协议,即不建立持久的连接)
    JS事件流(W3C与IE区别)
    学习Javascript闭包
    div内长串数字或字母不断行处理
    仿购物车加减数字
    多行文字两行断尾点点点显示
    MegaCli命令详解
  • 原文地址:https://www.cnblogs.com/guoyx/p/12936761.html
Copyright © 2011-2022 走看看