Spring Boot项目属性配置

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: Spring Boot项目属性配置

1、配置项目内置属性


属性配置主要是在application.properties文件里配置的(编写时有自动提示)这里我们将server的端口变为8888,路径加上HelloWorld:



在DeomApplication.java的页面时点击运行按钮,打开浏览器输入:http://localhost:8888/HelloWorld/hello


 

此时,控制台的输出信息也可以看到端口变成8888了:



之前的url已无效:



更改后的URL有效:



2、配置自定义属性


同样也是在application.properties文件编写,内容如下:


 

接着在HelloWorldController.java中使用@Value注解将自定义属性注入,这样可以直接使用自定义属性了:


 

运行项目,输入:http://localhost:8888/HelloWorld/hello,浏览器将显示如下结果:



3、ConfigurationProperties 配置


新建一个com.example.properties包,再新建一个MysqlProperties.java类,经测试运行会出错,无法找到该Bean,错误如下:


 

百度后找到了原因:


SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!

如果Application类所在的包为:io.github.gefangshuai.app,则只会扫描io.github.gefangshuai.app包及其所有子包,如果service或dao所在包不在io.github.gefangshuai.app及其子包下,则不会被扫描!


于是将MysqlProperties.java类移动了com.example.demo包下,也就是Application类所在的包,就没报bean找不到的错误了。


 

MysqlProperties.java用到了2个重要的注解:


1、@Component把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>


2、@ConfigurationProperties(prefix = "mysql"):将配置类注入到spring容器中,这样可以使用配置类,这里使用了前缀。


编写完成,IDEA会提示改属性有问题,原因是spring-boot-configuration-processor.jar包没有引入,在pom.xml加入如下依赖:


 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <optional>true</optional>
 </dependency>


MysqlProperties.java代码如下(使用Alt+Insert快捷键生成Getter和Setter方法):


 package com.example.demo;
  import org.springframework.boot.context.properties.ConfigurationProperties;
  import org.springframework.stereotype.Component;
  /**
 * Mysql属性配置
   */
 @Component
 @ConfigurationProperties(prefix = "mysql")
 public class MysqlProperties {
     private String jdbcName;
     private String dbUrl;
     private String userName;
     private String password;
     public String getJdbcName() {
         return jdbcName;
     }
     public void setJdbcName(String jdbcName) {
         this.jdbcName = jdbcName;
     }
     public String getDbUrl() {
         return dbUrl;
     }
     public void setDbUrl(String dbUrl) {
         this.dbUrl = dbUrl;
     }
     public String getUserName() {
         return userName;
    }
     public void setUserName(String userName) {
         this.userName = userName;
     }
     public String getPassword() {
         return password;
     }
     public void setPassword(String password) {
         this.password = password;
     }
 }

 

application.properties添加的属性如下:


1mysql.jdbcName=com.mysql.jdbc.Driver

2mysql.dbUrl=jdbc:mysql://localhost:3306/db_boot

3mysql.userName=root

4 mysql.password=root


HelloWordController.java的最终代码为:


 package com.example.demo;
  import org.springframework.beans.factory.annotation.Value;
  import org.springframework.stereotype.Controller;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.ResponseBody;
 import javax.annotation.Resource;
 /**
  * Created  on 2017-9-3.
  */
 @Controller
 public class HelloWorldController {
     @Value("${hellWorld}")
     private String helloWorld;
     @Resource
     private MysqlProperties mysqlPropertie;
     @RequestMapping("/hello")
     @ResponseBody
     public String say(){
         return  helloWorld;
     }
     @RequestMapping("/showJdbc")
     @ResponseBody
     public String showJdbc(){
         return "mysql.jdbcName" + mysqlPropertie.getJdbcName() +"<br/>"
                 + "mysql.dbUrl" + mysqlPropertie.getDbUrl() +"<br/>"
                 + "mysql.userName" + mysqlPropertie.getUserName() +"<br/>"
                 + "mysql.password" + mysqlPropertie.getPassword() +"<br/>";
     }
 }


运行项目,浏览器输入:http://localhost:8888/showJdbc,正确结果如下:


 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
6月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
6月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
2363 0
|
5月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
6月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1148 5
|
6月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
358 0
探索Spring Boot的@Conditional注解的上下文配置
|
7月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
1350 10
|
8月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
531 3
|
8月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
849 3
|
8月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
331 0

热门文章

最新文章