构造函数中,获取yml中的参数

简介: 构造函数中,获取yml中的参数

成员变量的注入是在Bean创建成功之后,通过setter方法进行注入的。所以下面会获取不到值

@RestController
public class VipsoftImController { 
    @Autowired
    private ZooKeeperUtil zooKeeperUtil;
    @RequestMapping("/")
    public String index() {
        return StrUtil.format("Hello World");
    }
}
@Component
public class ZooKeeperUtil {
    private static final Logger logger = LoggerFactory.getLogger(ZooKeeperUtil.class);
    @Value("${zookeeper.connectString}")
    private String connectString;
    public ZooKeeperUtil() {
       System.out.println(connectString);  //值为Null
    }
}

 

解决方案:

@RestController
public class VipsoftImController { 
    @Autowired
    private ZooKeeperUtil zooKeeperUtil;
    @RequestMapping("/")
    public String index() {
        return StrUtil.format("Hello World");
    }
}
@Component
public class ZooKeeperUtil {
    private static final Logger logger = LoggerFactory.getLogger(ZooKeeperUtil.class);
    private String connectString;
 
    public ZooKeeperUtil(@Value("${zookeeper.connectString}") String conn) {
        this.connectString = conn; 
        System.out.println(connectString); 
    }
}

属性多的话应该可以用一个类 @ConfigurationProperties(prefix = "xxxxx") 做为参数,没试过

在yml里面加入我们的自定义配置项,如(注意,使用一开始的key参数使用小写,使用大写会出错,因为prefix不支持驼峰命名和下划线形式)

目录
相关文章
|
域名解析 Java Maven
Maven 公共代理库
Maven 公共仓库提供了对 maven central、jcenter、google、spring 等常用的 Maven 仓库的镜像功能。用户可以通过页面浏览仓库内容、检索和下载制品。在构建时使用 Maven 个公共仓库地址下载制品速度更快,更稳定。
56548 1
Maven 公共代理库
|
Java 数据库
如何使用JPA的UUID主键生成策略
这篇文章只写给主键用uuid并且用jpa的小伙伴。 1. 数据实体类 @Entity @Table(name = "ip_user") @GenericGenerator(name = "jpa-uuid", strategy = "uuid") ...
4064 0
|
8月前
|
Java
SpringBoot快速搭建WebSocket服务端和客户端
由于工作需要,研究了SpringBoot搭建WebSocket双向通信的过程,其他的教程看了许多,感觉讲得太复杂,很容易弄乱,这里我只展示快速搭建过程。
2317 1
|
Ubuntu 关系型数据库 MySQL
Ubuntu 安装 MySQL 5.7
Ubuntu 安装 MySQL 5.7
672 0
|
10月前
|
监控 网络安全
网页显示HTTP错误503怎么办?HTTP错误503解决方法
HTTP 503错误表示服务器暂时无法处理请求,通常是由于服务器过载或维护导致。常见解决方法包括:1. 等待一段时间再刷新页面;2. 检查服务器负载;3. 确认服务器是否在维护;4. 检查配置错误;5. 联系服务提供商。通过这些步骤,用户和管理员可以有效排查并解决该问题。
11475 3
|
Web App开发 Linux iOS开发
Chrome浏览器如何导出所有书签并导入书签
【11月更文挑战第4天】本文介绍了如何在 Chrome 浏览器中导出和导入书签。导出时,打开书签管理器,点击“整理”按钮选择“导出书签”,保存为 HTML 文件。导入时,同样打开书签管理器,点击“整理”按钮选择“导入书签”,选择之前导出的 HTML 文件即可。其他主流浏览器也支持导入这种格式的书签文件。
10212 2
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
1039 4
|
Java Linux Docker
CentOS7 Docker 安装,配置国内镜像
CentOS7 Docker 安装,配置国内镜像
2533 2
|
移动开发 监控 网络协议
一文了解WebSocket及Springboot集成WebSocket
一文了解WebSocket及Springboot集成WebSocket
一文了解WebSocket及Springboot集成WebSocket
|
Java 数据库
request.setAttribute()详解
request.setAttribute()详解
1294 1