怎样使用Spring的配置文件?带大家一起玩转Spring配置文件(三)

简介: 怎样使用Spring的配置文件?带大家一起玩转Spring配置文件(三)

💦3、Bean的依赖注入数据类型

💨普通数据类型的注入

我用set方法的方式,讲解bean的依赖注入。继续在UserDaoImpl类中添加两个基本数据类型和它们的set方法


 

private String name;
    private Integer age;
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public void show() {
        System.out.println("名字是" + name + "的年龄是" + age);
    }


修改xml配置文件的bean,name的属性值代表着set方法的名,value的属性值表示你想要填入的属性值


<bean id="userDao" class="com.sht.dao.impl.UserDaoImpl">
        <property name="name" value="卷心菜"></property>
        <property name="age" value="20"></property>
</bean>


写一个测试类:


 

public void test7(){
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDaoImpl contextBean = context.getBean(UserDaoImpl.class);
        contextBean.show();
    }


运行结果:

image.png


💨集合数据类型的注入

🔥List类型的注入

继续在UserDaoImpl类中改动代码:


 

private List<String> stringList;
    public void setStringList(List<String> stringList) {
        this.stringList = stringList;
    }
    public void showStringList() {
        System.out.println(stringList);
    }


修改xml配置文件,注入基本数据类型就是两个关键字<list>和<value>


<bean id="userDao" class="com.sht.dao.impl.UserDaoImpl">
       <property name="stringList">
          <list>
              <value>111</value>
              <value>222</value>
              <value>333</value>
          </list>
       </property>
  </bean>


运行结果:

image.png


🔥List类型的注入

先创建一个User类,有对应的get和set方法,还有toString方法,方便测试使用


public class User {
    private Integer id;
    private String username;
    private String password;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}


修改xml配置文件的bean,可以看出,与之前不同的是,<list>中用的是<ref>标签,这个标签表示的是注入引用数据类型


<bean id="user01" class="com.sht.domain.User">
        <property name="id" value="1"></property>
        <property name="username" value="卷心菜"></property>
        <property name="password" value="123456"></property>
 </bean>
    <bean id="user02" class="com.sht.domain.User"></bean>
    <bean id="userDao" class="com.sht.dao.impl.UserDaoImpl">
       <property name="userList">
           <list>
               <ref bean="user01"></ref>
               <ref bean="user02"></ref>
           </list>
       </property>
    </bean>


运行结果:

image.png


🔥Map<String,User> 类型的注入

继续在UserDaoImpl类中改动代码:


 

private Map<String, User> stringUserMap;
    public void setStringUserMap(Map<String, User> stringUserMap) {
        this.stringUserMap = stringUserMap;
    }
    public void showStringUserMap() {
        System.out.println(stringUserMap);
    }


修改xml配置文件,与之前不同的是,当使用的是map时,标签用的是<map>和标签<entry>,使用方法跟list标签差不多


 

<bean id="user01" class="com.sht.domain.User">
        <property name="id" value="1"></property>
        <property name="username" value="卷心菜"></property>
        <property name="password" value="123456"></property>
    </bean>
    <bean id="userDao" class="com.sht.dao.impl.UserDaoImpl">
        <property name="stringUserMap">
         <map>
             <entry key="key1" value-ref="user01"></entry>
         </map>
        </property>
    </bean>


运行结果:

image.png

需要注意的是,我们在选择key属性时,会有一个如图所示的key-ref的提示,这代表着我们要用的key是一个引入数据类型,因为我用的key是String,所以选择key

image.png

当使用value-ref时,也会出现value的值,其用法跟上面一样

image.png


🔥Properties类型的注入

继续在UserDaoImpl类中改动代码:


 

private Properties properties;
    public void setProperties(Properties properties) {
        this.properties = properties;
    }
    public void showProperties(){
        System.out.println(properties);
    }


修改xml配置文件,与之前的不同之处就是标签使用的是<props>和标签<prop>,使用的方法也是跟上面的方法类似


<bean id="userDao" class="com.sht.dao.impl.UserDaoImpl">
       <property name="properties">
           <props>
               <prop key="key01">value1</prop>
               <prop key="key02">value2</prop>
           </props>
       </property>
 </bean>


运行结果:

image.png


💦4、引入其他配置文件(分模块开发)

创建一个新的配置文件applicationContext1.xml,实际开发中,Spring的配置内容非常多,这就导致Spring配置很繁杂且体积很大,所以,可以将部分配置拆解到其他配置文件中,而在Spring主配置文件通过import标签进行加载


把applicationContext1.xml配置文件中的配置内容引入到applicationContext.xml的实现方式:


<import resource="applicationContext1.xml"></import>


📕总结

以上就是Spring配置文件的相关知识点,带大家来看看Spring的重点配置:

image.png

相关文章
|
4天前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
11 1
|
1月前
|
Java 容器 Spring
Spring的加载配置文件、容器和获取bean的方式
Spring的加载配置文件、容器和获取bean的方式
30 3
Spring的加载配置文件、容器和获取bean的方式
|
19小时前
|
Java 数据库连接 Spring
JDBC配置文件抽取-spring11
JDBC配置文件抽取-spring11
|
1天前
|
Java Spring
spring如何引入配置文件
spring如何引入配置文件
|
22天前
|
设计模式 Java 关系型数据库
Spring的配置文件,如何配置端口号,,properties,yml获取配置项等方法,外观模式及其优缺点,日志代表的信息
Spring的配置文件,如何配置端口号,,properties,yml获取配置项等方法,外观模式及其优缺点,日志代表的信息
|
7天前
|
JavaScript Java 数据库连接
【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理
【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理
15 0
|
1月前
|
XML 监控 Java
Spring Boot 配置文件
Spring Boot 配置文件
27 2
|
24天前
|
JavaScript Java 数据库连接
Spring Boot 配置文件
Spring Boot 配置文件
23 0
|
1月前
|
Java Shell 测试技术
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
51 0
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
|
1月前
|
Java Maven 数据库
Spring系列文章4:读取配置文件
Spring系列文章4:读取配置文件