Spring-IOC-@Value和@PropertySource用法

1、Book.java

  • @PropertySource(value="classpath:配置文件地址") 替代 <context:property-placeholder location="配置文件地址"/>

|-----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| @Value("{book.bid}")** **@Value("{book.bname}") @Value("{book.price}")** | **\** **\{book.bname}"/\>** **\

java 复制代码
package com.atguigu.ioc;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Data
@Component
@PropertySource(value = "classpath:book.properties", encoding = "UTF-8")
public class Book {
    @Value("${book.bid}")
    private Integer bid;
    @Value("${book.bname}")
    private String bname;
    @Value("${book.price}")
    private Integer price;
}

2、book.properties

java 复制代码
book.bid=1
book.bname=Java入门经典
book.price=99

3、MySpringConfiguration.java

  • @ComponentScan(basePackages={"包","包"}) 替代 <context:component-scan base-package="com.atguigu.ioc,等等">
java 复制代码
package com.atguigu.ioc;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
public class MySpringConfiguration {
}

4、BookTest.java

java 复制代码
package com.atguigu.ioc;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class BookTest {

    private BeanFactory beanFactory;
    @BeforeEach
    public void setup() {
        beanFactory = new AnnotationConfigApplicationContext(MySpringConfiguration.class);
    }
    @Test
    public void test() {
        System.out.println(beanFactory.getBean(Book.class));
    }
}
//Book(bid=1, bname=Java入门经典, price=99)

5、父工程pom.xml

XML 复制代码
    <packaging>pom</packaging>
    <modules>
        <module>pro04-spring-ioc-xml</module>
        <module>pro00-spring-handwrite</module>
        <module>pro05-spring-ioc-annotation</module>
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>6.0.6</spring.version>
        <junit.version>5.3.1</junit.version>
        <lombok.version>1.18.20</lombok.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

6、子工程pom.xml

XML 复制代码
    <parent>
        <groupId>com.atguigu</groupId>
        <artifactId>pro-ssm</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>pro05-spring-ioc-annotation</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
相关推荐
像我这样帅的人丶你还14 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩15 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia15 小时前
Mybatis的日志输入
java
亦暖筑序17 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户2986985301420 小时前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao20 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿20 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰67521 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly21 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring
RainCity21 小时前
Java Swing 自定义组件库分享(十二)
java·笔记·后端