文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot中的配置类(@Configuration)

2024-04-02 19:55

关注

SpringBoot基于java类的配置

java配置主要靠java类和一些注解来达到和xml配置一样的效果,比较常用的注解有:

提示: @Configuration也附带了@Component的功能。所以理论上内部也可以使用@Autowared功能的

我们接下来用Java类配置来尝试实现连接池配置

第一步

在pom.xml导入

<!--druid 数据连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>

第二步

添加druid.properties文件到resources包里

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/order?characterEncoding=utf-8
name=root
pass=root
initialSize=1
minIdle=1
maxActive=20
maxWait=3

第三步

创建配置文件 JdbcConfig

package cn.boke.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:druid.properties")   //导入配置文件
public class JdbcConfig {
    //将配置文件内的 信息 放入变量中
    @Value("${driverClassName}")
    private  String driverClassName;  //JDBC驱动
    @Value("${url}")
    private String url;  //连接地址
    @Value("${name}")
    private  String name;  //数据库用户
    @Value("${pass}")
    private String pass;  //数据库密码
    @Value("${initialSize}")
    private int initialSize;   //初始化连接数量
    @Value("${minIdle}")
    private int minIdle;  //最小连接数量
    @Value("${maxActive}")
    private int maxActive;  //最大连接数量
    @Value("${maxWait}")
    private int maxWait;  //最大等待时间
    @Bean("dataSource")  //将配置信息 存入Spring 容器中 名称为 dataSource
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUsername( name);
        dataSource.setPassword(pass);
        dataSource.setInitialSize(initialSize);
        dataSource.setMaxActive(maxActive);
        dataSource.setMaxWait(maxWait);
        return dataSource;
    }
}

第四步测试

连接池内的数据是否 添加成功

打个断点

运行TestAplliaction 这个类的启动引导

然后在游览器中输入 http://localhost:8080/hello

回到IDEA控制台中点击

能在显示的内容中找到 对应的信息 就ok了

A控制台中点击

能在显示的内容中找到 对应的信息 就ok了

SpringBoot自定义配置类

1.方式一

配置类标注:

必须设定get/set方法

配置类:

@Component //将该Bean放入spring容器中
@ConfigurationProperties(prefix = "com.example")//指定该类为配置获取类,并指定前缀
public class MyConfig {
    private String name;
    private Integer age;
    //必须设置get set方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}

application.properties中配置

com.example.age=20
com.example.name=xxx

使用:

在其他Bean中可以直接注入该Bean

@RestController
public class DemoController {
    @Autowired
    private MyConfig config;
    @GetMapping("/demo2")
    public String m2(){
        return config.getName();
    }
}

2.方式二

配置类:

不使用 @Component 将该类放入spring容器中,而是使用@EnableConfigurationProperties(MyConfig.class)在根配置类中引入 

@ConfigurationProperties(prefix = "com.example")//指定该类为配置获取类,并指定前缀
public class MyConfig {
    private String name;
    private Integer age;
    //必须设置get set方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}
@SpringBootApplication
@EnableConfigurationProperties(MyConfig.class) //引入自定义配置类
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯