当前位置: 首页> 房产> 建材 > Spring-di基本使用

Spring-di基本使用

时间:2025/7/20 15:11:48来源:https://blog.csdn.net/2301_76862031/article/details/142070406 浏览次数:0次

SpringDI

1 基础环境准备

       

流程如下

1.在自己的工程中建一个module用于SpringDi注入
2.导入spring相关的依赖
<dependencies><!--导入spring-context依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.12</version></dependency><!--导入测试依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--导入日志框架--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j2-impl</artifactId><version>2.23.1</version></dependency></dependencies>
3.创建spring的配置文件
1)log4j2配置文件

在resources中的文件夹中创建log4j2.xml文件。文件中的内容如下

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><!--配置控制台输出日志--><Console name="Console" target="SYSTEM_OUT"><!--日志的输出格式--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console><!--配置文件输出日志--><File name="File" fileName="d:logs/app.log"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></File></Appenders><Loggers><!--日志级别为debug--><Root level="debug"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Root></Loggers>
</Configuration>
2)SpringConfig.xml

在resourse文件夹下,创建SpringConfig.xml文件,文件中的内容如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>
4.准备实体类
 1)User实体类

        

package org.xiji.enty;public class User {private String username;private String password;public User(String username, String password) {this.username = username;this.password = password;}public User() {}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;}
}

2)Teacher实体类

package org.xiji.enty;import java.util.List;
import java.util.Map;public class Teacher {private String teacherName;private User user;private List<User> listUser;private Map<String, User> mapUser;public Teacher(String teacherName, User user, List<User> listUser, Map<String, User> mapUser) {this.teacherName = teacherName;this.user = user;this.listUser = listUser;this.mapUser = mapUser;}public Teacher() {}public String getTeacherName() {return teacherName;}public void setTeacherName(String teacherName) {this.teacherName = teacherName;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public List<User> getListUser() {return listUser;}public void setListUser(List<User> listUser) {this.listUser = listUser;}public Map<String, User> getMapUser() {return mapUser;}public void setMapUser(Map<String, User> mapUser) {this.mapUser = mapUser;}
}

2 SpringDi注入

1.普通属性注入

        set注入        

                通过property的 name="属性名", value="属性值"

<!--set注入-->
<bean id="user" class="org.xiji.enty.User"> <property name="username" value="xiji"/><property name="password" value="123456"/>
</bean>

        构造注入

                通过contructor-arg name="属性名" ,value="属性值"

<!--构造注入-->
<bean id="user2" class="org.xiji.enty.User"><constructor-arg name="username" value="张三"/><constructor-arg name="password" value="123456"/>
</bean>

2.对象属性注入

        外部引入

                通过property name="属性名" ref="外部对象bean属性id"

        

<!--外部对象注入-->
<bean id="teacher" class="org.xiji.enty.Teacher"><property name="teacherName" value="张老师"/><property name="user" ref="user"/>
</bean>

        内部创建

                在property 标签内部创建bean

<!--内部对象注入-->
<bean id="teacher2" class="org.xiji.enty.Teacher"><property name="teacherName" value="小久"></property> <property name="user" ><bean id="user" class="org.xiji.enty.User"><property name="username"   value="小菊"></property><property name="password" value="123456"></property></bean></property>
</bean>

        外部引入级联赋值

                通过property ref="外部bean对象id" 在通过property中name="bean对象+属性"  和value=“赋值”

<!--外部对象注入+级联属性赋值-->
<bean id="teacher3" class="org.xiji.enty.Teacher"><property name="teacherName" value="惜己"></property><property name="user" ref="user2" ></property><property name="user.username" value="小明"></property><property name="user.password" value="123456"></property>
</bean>

3.List集合注入

        在property标签内部使用list标签,并且通过<ref bean=“外部beanid”>的方式引入bean

<!--list集合注入-->
<bean id="teacher4" class="org.xiji.enty.Teacher"><property name="teacherName" value="小光"></property><property name="listUser"><list><ref bean="user"></ref><ref bean="user2"></ref></list></property>
</bean>

4.Map集合注入

       通过property标签内部使用<map>标签,中的<entry>标签   Key(value) 和ref(引入外部对象)对map集合赋值

<!--mapper注入-->
<bean id="teacher5" class="org.xiji.enty.Teacher"><property name="teacherName" value="小明"></property> <property name="mapUser"><map><entry><key><value>xiji</value></key><ref bean="user"></ref></entry><entry><key><value>zs</value></key><ref bean="user2"></ref></entry></map></property>
</bean>

测试结果

5.通过util注入map和list

需要在头部标签导入

beans外部标签加入xmlns:util ="http://www.springframework.org/schema/util"

xsi:schemaLocation="
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd "
 

具体实现

<!--通过util导入list集合和map集合-->
<!--beans外部标签加入   xmlns:util ="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util.xsd"
--><util:list id="mylist" ><ref bean="user" ></ref><ref bean="user2"></ref>
</util:list><util:map id="mymap"><entry><key><value>xiji</value></key><ref bean="user"></ref></entry><entry><key><value>zs</value></key><ref bean="user2"></ref></entry>
</util:map>
<bean id="teacher6" class="org.xiji.enty.Teacher"><property name="teacherName" value="外部测试"></property><property name="listUser" ref="mylist"></property><property name="mapUser" ref="mymap"></property>
</bean>

        

关键字:Spring-di基本使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: