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的架构中,属性注入的两种方式
-
@PropertySource
:用于指定属性文件的位置,可以在Spring的配置类上使用。 -
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或配置 }