1、Book.java
- @PropertySource(value="classpath:配置文件地址") 替代 <context:property-placeholder location="配置文件地址"/>
@Value("${book.bid}")
@Value("${book.bname}")
@Value("${book.price}")
<bean id="book" class="com.atguigu.ioc.Book">
<property name="bid" value="${book.bid}"/>
<property name="bname" vlaue="${book.bname}"/>
<property name="price" value="${book.price}"/>
</bean>
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
book.bid=1 book.bname=Java入门经典 book.price=99
3、MySpringConfiguration.java
- @ComponentScan(basePackages={"包","包"}) 替代 <context:component-scan base-package="com.atguigu.ioc,等等">
package com.atguigu.ioc; import org.springframework.context.annotation.ComponentScan; @ComponentScan public class MySpringConfiguration { }
4、BookTest.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;@BeforeEachpublic void setup() {beanFactory = new AnnotationConfigApplicationContext(MySpringConfiguration.class);}@Testpublic void test() {System.out.println(beanFactory.getBean(Book.class));} } //Book(bid=1, bname=Java入门经典, price=99)
5、父工程pom.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
<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>