欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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属性映射。