关于spring字段注入的不同方式

1.@Vaule

在ssm的模式中

kotlin 复制代码
@Value("${jdbc.driver}")
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;

可以使用@value的方式直接注入字段,spring启动后,读取配置文件

其中:bootstrap.properties主要用于配置Spring Boot应用程序的启动阶段,而application.properties主要用于配置应用程序的业务逻辑。在实际开发中,我们通常会根据需要修改application.properties文件,而不需要修改bootstrap.properties文件。

当然,我们可以自定义资源的路径

less 复制代码
@Configuration
@PropertySource("classpath:jdbc.properties")
@Import({jdbcconfig.class})

在配置类里,通过@PropertySource来指定resource目录下的文件名,@PropertySource添加资源的路径

2.前缀的使用

前缀的自动注入注解由springboot提供

介绍一下在ssm的架构中,属性注入的两种方式

  1. @PropertySource:用于指定属性文件的位置,可以在Spring的配置类上使用。

  2. PropertyPlaceholderConfigurer:用于解析属性文件中的占位符,将属性值注入到Bean的属性中,比如:

    ini 复制代码
      <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:config.properties"/>
    </bean>
    <bean id="myBean" class="com.example.MyBean">
        <property name="someProperty" value="${property.key}"/>
    </bean>

    在这个例子中,,property.key是属性文件中的一个键,使用配置文件来注册bean

springboot提供了两个注解

@ConfigurationProperties(prefix = "myapp.database") ,当prefix+url与配置文件相同时,可自动注入 注意:这个bean对象需要写getter和setter方法

less 复制代码
@Component
@ConfigurationProperties(prefix = "myapp.database") 
public class DatabaseProperties { 
private String url; 
private String username; 
private String password; // 省略getter和setter方法 }

@EnableConfigurationProperties(DatabaseProperties.class) ,在

kotlin 复制代码
import org.springframework.boot.context.properties.EnableConfigurationProperties; 
import org.springframework.context.annotation.Configuration;
@Configuration 
@EnableConfigurationProperties(DatabaseProperties.class) 
public class AppConfig {
// 可以在这里注入其他Bean或配置 }
相关推荐
小林学习编程1 小时前
SpringBoot校园失物招领信息平台
java·spring boot·后端
java1234_小锋3 小时前
Spring Bean有哪几种配置方式?
java·后端·spring
柯南二号4 小时前
【后端】SpringBoot用CORS解决无法跨域访问的问题
java·spring boot·后端
每天一个秃顶小技巧5 小时前
02.Golang 切片(slice)源码分析(一、定义与基础操作实现)
开发语言·后端·python·golang
gCode Teacher 格码致知6 小时前
《Asp.net Mvc 网站开发》复习试题
后端·asp.net·mvc
Moshow郑锴8 小时前
Spring Boot 3 + Undertow 服务器优化配置
服务器·spring boot·后端
Chandler249 小时前
Go语言即时通讯系统 开发日志day1
开发语言·后端·golang
有梦想的攻城狮9 小时前
spring中的@Lazy注解详解
java·后端·spring
野犬寒鸦10 小时前
Linux常用命令详解(下):打包压缩、文本编辑与查找命令
linux·运维·服务器·数据库·后端·github
huohuopro10 小时前
thinkphp模板文件缺失没有报错/thinkphp无法正常访问控制器
后端·thinkphp