Spring读取配置文件获取容器,通过容器获得javaBean演示
1.创建一个空项目
配置项目JDK
新建module
选择Maven项目
注意路径
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hrui</groupId>
<artifactId>001-springboot-pre</artifactId>
<version>1.0.0</version>
<!--spring框架-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.23</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- 插件的版本 -->
<version>3.8.1</version>
<!-- 编译级别 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
<!-- 编码格式 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
新建实体类
配置配置文件,以读取.xml的方式去获取bean
测试获取bean
下面用JavaConfig的方式(就是以配置类的方式来获取容器,获得bean)
javaConfig:使用java类作为.xml配置文件的替代.这个java类可以创建java对象,把对象放进容器中
需要两个注解:
@Configuration:放在一个类上面,表示这个类是个配置类.
@Bean:声明对象,把对象注入到容器中.
注意:通过@Bean来获取对象,bean的名字默认是方法名 即原先.xml里配的id
通过@Bean(name="xxxx")指定名字的方式
这样就取代了通过.xml来获得容器
另外还有种方式,即通过.xml配置文件,java类配置的方式
@ImportResource注解
创建个.xml配置文件
现在的需求是即需要通过Java类配置的对象,也需要.xml里配置的对象
如果获取呢?就是通过@ImportResource
@ImportResource注解
学习Spring 用配置文件的时候,有个包扫描
变成注解就是@ComponentScan(value="xxxx")指定扫描的包路径
创建一个类Teacher加上注解@Component 是Spring的通用注解,意思该类对象交给Spring容器管理,默认的bean名字是首字母小写
然后在配置文件上加上@ComponentScan(value="xxxx")指定扫描的包路径 相当于原先.xml里的包扫描
成功获取了teacher对象
下面介绍另外一个注解:
@PropertyResource
@PropertyResource是用来读取Properties配置文件的
properties文件是Key=Value的模式
创建一个.properties文件
加上@PropertyResource是用来读取Properties配置文件的
teacher就有值了