zoukankan      html  css  js  c++  java
  • Spring的Java配置方式和读取properties配置文件

           java配置是spring4.x推荐的配置方式,可以完全替代xml配置。

    1、注解 @Configuration 和 @Bean

      spring的java配置方式是通过@Configuration和@Bean这两个注解来实现的。

      @Configuration作用在类上,相当于一个xml配置文件;@Bean作用在方法上,相当于xml配置中的<bean>

       UserServiceImpl

    package com.oy.service.impl;
    
    import com.oy.service.UserService;
    
    public class UserServiceImpl implements UserService {
    
        @Override
        public void getUser(Integer id) {
            System.out.println("id = " + id);
        }
        
    }

      JavaConfig

    package com.oy;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    import com.oy.service.UserService;
    import com.oy.service.impl.UserServiceImpl;
    
    @Configuration // 通过该注解来表明该类是一个spring的配置类,相当与一个xml文件
    //@ComponentScan(basePackages = {"com.oy.service.impl"}) // 配置扫描包
    public class JavaConfig {
    
        @Bean
        public UserService userService() {
            return  new UserServiceImpl();
        }
    }

      TestDemo

    public class TestDemo {
    
        public static void main(String[] args) {
            AnnotationConfigApplicationContext context = 
                    new AnnotationConfigApplicationContext(JavaConfig.class);
            
            UserService userService = context.getBean(UserService.class);
            userService.getUser(111);
            
            context.close();
        }
    }

    2、读取外部的配置文件

      依赖

    <!-- 连接池 -->
    <dependency>
        <groupId>com.jolbox</groupId>
        <artifactId>bonecp-spring</artifactId>
        <version>0.8.0.RELEASE</version>
    </dependency>

      数据库连接信息 db.properties

    db.url=jdbc:mysql://127.0.0.1:3306/security_test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
    db.driverClassName=com.mysql.jdbc.Driver
    db.username=root
    db.password=

      DBConfig

    package com.oy;
    
    import javax.sql.DataSource;
    
    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 com.jolbox.bonecp.BoneCPDataSource;
    
    @Configuration
    @PropertySource(value= {"classpath:db.properties", "xxx"},ignoreResourceNotFound=true)
    public class DBConfig {
    
        @Value("${db.url}")
        private String url;
        @Value("${db.driverClassName}")
        private String driverClassName;
        @Value("${db.username}")
        private String username;
        @Value("${db.password}")
        private String password;
        
        @Bean(destroyMethod="close")
        public DataSource dataSource () {
            System.out.println("======url=" + url);
            BoneCPDataSource dataSource = new BoneCPDataSource();
            dataSource.setDriverClass(driverClassName);
            dataSource.setJdbcUrl(url);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
            // 检查数据库连接池中空闲连接的间隔时间,单位分,默认240,如果要取消设置为0
            dataSource.setIdleConnectionTestPeriodInMinutes(60);
            // 连接池中未使用的连接最大存活时间,单位分,默认60,如果要永远存活设置为0
            dataSource.setIdleMaxAgeInMinutes(30);
            // 每个分区最大连接数
            dataSource.setMaxConnectionsPerPartition(100);
            // 每个分区最小连接数
            dataSource.setMinConnectionsPerPartition(5);
            return dataSource;
        }
    }

      测试数据源是否配置成功

    public class TestDemo {
    
        public static void main(String[] args) {
            AnnotationConfigApplicationContext context = 
                    new AnnotationConfigApplicationContext(DBConfig.class);
            
            DataSource dataSource = context.getBean(DataSource.class);
            System.out.println(dataSource);
            
            context.close();
        }
    }

    ==============以上使用的是javaConfig配置==============

    ==============xml配置参考==============

    ---

  • 相关阅读:
    世界排名第二的web前端框架bulma与Bootstrap框架的选择
    Bootstrap5中文手册翻译完毕
    RabbitMQ 学习一 了解+点对点模式
    仿京东搜索
    ES集成SpringBoot
    ElasticSearch
    权限管理整合springsecurity代码执行过程
    权限管理
    Gateway网关
    canal数据同步 客户端代码实现
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/14005085.html
Copyright © 2011-2022 走看看