Spring中Bean管理XML方式
程序员文章站
2022-05-24 10:55:56
...
XML注入空值
//adress为实体类属性名
<property name="adress">
</null>
</property>
XML注入特殊符号
在XML中<>是作为标签,用CDATA可以将<>进行转义
<property name="adress">
<value><![CDATA[<<上海>>]]></value>
</property>
XML注入外部bean
在操作中有三层,controller层调用service层,serrvice层调用dao层,调用的这个过程就是引入外部bean,(以serrvice层调用dao层为例)
(1)创建俩个类,service类和dao类
//dao类接口
public interface UserDao {
void update();
}
//实现类
public class UserDaoIml implements UserDao{
@Override
public void update() {
System.out.println("——————update——————");
}
}
(2)service调用dao里面的方法
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(){
System.out.println("——add————————————");
userDao.update();
}
}
(3)spring配置文件
<!service和dao的对象创建>
<bean id="UserService" class ="service类的路径">
<!注入UserDao对象,ref名字为dao层bean的id>
<property name="UserDao" ref ="UserDaoIml"></property>
</bean>
<bean id="UserDaoIml" class ="dao层实现类的路径"></bean>
内部bean和级联赋值
内部bean由一对多来举例子,一个部门对应多个员工,每个员工的部门是独有的。
//员工
@Data
public class Emp {
private String ename;
//部门
private Dept dept;
}
//部门
@Data
public class Dept {
private String dname;
}
XML将部门属性注入员工内部
<bean id="emp" class="员工类路径">
<!设置员工普通属性>
<property name="ename" value="张三"></property>
<!设置对象性属性>
<property name="dept">
<bean id="dept" class="部门类路径">
<property name="dname" value="后端开发部"></property>
</bean>
</property>
</bean>
XML注入list,数组,map,set类型属性
实体类
@Data
public class Student {
private String[] course;
private List<String> list;
private Map<String,String> maps;
private Set<String> set;
}
xml配置
<bean id="Student" class="实体类路径">
<property name="course" >
<array>
<value>java编程</value>
<value>Mysql</value>
</array>
</property>
<property name="list" >
<list>
<value>张三</value>
<value>李四</value>
</list>
</property>
<property name="map" >
<map>
<entry key="JAVA" value="java"></entry>
<entry key="MYSQL" value="mysql"></entry>
</map>
</property>
<property name="sets" >
<set>
<value>Redis</value>
<value>Double</value>
</set>
</property>
</bean>
注入对象属性可通过ref属性映射。