ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【spring】Bean管理xml

2021-08-05 18:02:31  阅读:273  来源: 互联网

标签:xml map set spring void list courses Bean public


创建对象和set注入属性
在这里插入图片描述
DI:注入属性

通过set注入属性
在这里插入图片描述
xml配置文件

    <bean id="book" class="com.su.spring5.Book">
        <!--使用property完成属性注入
            name:类里面的属性名称
            value向属性注入的值
        -->
        <property name="bname" value="易筋经"></property>
        <property name="bauthor" value="达摩老祖"></property>

    </bean>

测试类

    @Test
    public void BookTest(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        Book book = context.getBean("book", Book.class);
        System.out.println(book);

    }

通过有参构造注入:

<!--    有参构造注入-->
    <bean id="order" class="com.su.spring5.Orders">

        <constructor-arg name="oname" value="电脑"></constructor-arg>
        <constructor-arg name="address" value="China"></constructor-arg>
    </bean>

p名称空间注入

在这里插入图片描述

xmlns:p="http://www.springframework.org/schema/p"



<bean id="book" class="com.su.spring5.Book" p:bname="九阳神功" p:bauthor="无名氏">
        <!--<property name="bname" value="易筋经"></property>
        <property name="bauthor" value="达摩老祖"></property>-->

</bean>

注入空值和特殊符号

<bean id="book" class="com.su.spring5.Book">
        <property name="bname" value="易筋经"></property>
        <property name="bauthor" value="达摩老祖"></property>
        <property name="bprice">
            <null></null>  <!--注入空值-->
        </property>
    </bean>
<bean id="book" class="com.su.spring5.Book">
        <!--
            1.进行转义

            2.把特殊符号内容写到CDATA
        -->
        <property name="bname" >
            <value><![CDATA[<<易筋经>>]]></value>
        </property>
        <property name="bauthor" value="达摩老祖"></property>
        <property name="bprice" value="100"></property>
    </bean>

注入外部bean

创建两个类service和dao类
在service调用dao里面的方法

UserDao

public interface UserDao {
    public void update();
}

UserImpl

public class UserImpl implements UserDao{
    @Override
    public void update() {
        System.out.println("dao update..........");
    }
}

UserService

import com.su.spring5.dao.UserDao;

public class UserService {

    private UserDao userDao;

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void add(){
        System.out.println("service add......");
        userDao.update();
    }
}
    <bean id="userDaoImpl" class="com.su.spring5.dao.UserImpl"></bean>
    <bean id="userService" class="com.su.spring5.service.UserService">
        <!--
            注入userDao对象
            name:类属性
            ref:创建userDao对象bean标签id值
        -->
        <property name="userDao" ref="userDaoImpl">
        </property>
    </bean>

    @Test
    public void TestService(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        userService.add();
    }

内部bean和级联赋值

一对多的关系
一个部门有多个员工,一个员工属于一个部门
在这里插入图片描述

<bean id="emp" class="com.su.spring5.bean.Emp">
        <property name="ename" value="lucy"></property>
        <property name="gender" value="女"></property>
        <property name="dept">
            <bean id="dept" class="com.su.spring5.bean.Dept">
                <property name="dname" value="安保部"></property>
            </bean>
        </property>
    </bean>

级联赋值
在这里插入图片描述
一开始和外部bean注入步骤是一致的。

<bean id="emp" class="com.su.spring5.bean.Emp">
        <property name="ename" value="Allen"></property>
        <property name="gender" value="男"></property>
        <property name="dept" ref="dept"></property>
        <property name="dept.dname" value="技术部"></property>
    </bean>
    <bean id="dept" class="com.su.spring5.bean.Dept"></bean>

注入集合属性

注入数组类型的属性
注入List集合类型
注入Map集合类型

package com.su.spring5.bean;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Student {
    private String[] courses;
    private List<String> list;
    private Map<String,Integer> map;
    private Set<String> set;

    public Student() {
    }

    public Student(String[] courses, List<String> list, Map<String, Integer> map, Set<String> set) {
        this.courses = courses;
        this.list = list;
        this.map = map;
        this.set = set;
    }

    public String[] getCourses() {
        return courses;
    }

    public void setCourses(String[] courses) {
        this.courses = courses;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    public Map<String, Integer> getMap() {
        return map;
    }

    public void setMap(Map<String, Integer> map) {
        this.map = map;
    }

    public Set<String> getSet() {
        return set;
    }

    public void setSet(Set<String> set) {
        this.set = set;
    }

    @Override
    public String toString() {
        return "Student{" +
                "courses=" + Arrays.toString(courses) +
                ", list=" + list +
                ", map=" + map +
                ", set=" + set +
                '}';
    }
}

    <bean id="student" class="com.su.spring5.bean.Student">
        <!--数组类型的属性注入-->
        <property name="courses">
            <array>
                <value>数学</value>
                <value>英语</value>
                <value>语文</value>
            </array>
        </property>
        <!--集合类型的属性注入-->
        <property name="list">
            <list>
                <value>Java</value>
                <value>C++</value>
                <value>Python</value>
            </list>
        </property>
        <property name="map">
            <map>
                <entry key="html" value="89"></entry>
                <entry key="c++" value="92"></entry>
                <entry key="js" value="76"></entry>
            </map>
        </property>
        <property name="set">
            <set>
                <value>mysql</value>
                <value>sql server</value>
                <value>rdius</value>
            </set>
        </property>
    </bean>

标签:xml,map,set,spring,void,list,courses,Bean,public
来源: https://blog.csdn.net/weixin_48180029/article/details/119407226

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有