IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring学习总结【三】--Spring配置、DI(依赖注入) -> 正文阅读

[Java知识库]Spring学习总结【三】--Spring配置、DI(依赖注入)

Spring配置

使用spring创建对象,spring中称为Bean
类型 变量名 = new 类型();
Hello hello = new Hello();

在spring中
id = 变量名
class = new的对象
property 相当于给属性赋值

<bean id="hello" class="pojo.Hello">
<!--        value  具体的值,基本数据类型
            ref    引用spring容器中创建好的对象
-->
   <property name="str" value="Spring"/>
</bean>

1.别名

在这里插入图片描述

2.Bean的配置

在这里插入图片描述

<bean id="hello" class="pojo.Hello" name="hello1 hello2,h3;h4">
   <property name="str" value="Spring"/>
</bean>

3.Import

这个import,一般用于团队开发使用,他可以将多个配置文件,导入合并为一个
假设,现在项目中有多个人开发,这三个人复制不同的类开发,不同的类需要注册在不同的bean中,我们可以利用import将所有人的beans.xml合并为一个总的!

如:在总的配置文件applicationConfig.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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
        
		<import resource="spring-dao.xml"/>
		<import resource="spring-service.xml"/>
<beans>

DI(依赖注入)

1.构造器注入

Spring学习总结【二】—IoC(控制反转) 中的 IoC创建对象的方式

2.set方式注入【重点】

。依赖: bean对象的创建依赖于容器!
。注入:bean对象中的所有属性,由容器来注入!

步骤如下:

  • 1.在 Bean 中提供一个默认的无参构造函数(在没有其他带参构造函数的情况下,可省略),并为所有需要注入的属性提供一个 setXxx() 方法;
  • 2.在 Spring 的 XML 配置文件中,使用 及其子元素 对 Bean 进行定义;
  • 3.在 <bean> 元素内使用 <property> 元素对各个属性进行赋值。
public class Student {
    private String name;
    private Address address;
    private String[] book;
    private List<String> hobby;
    private Map<String, String> card;
    private Set<String> games;
    private String wife;
    private Properties info;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String[] getBook() {
        return book;
    }

    public void setBook(String[] book) {
        this.book = book;
    }

    public List<String> getHobby() {
        return hobby;
    }

    public void setHobby(List<String> hobby) {
        this.hobby = hobby;
    }

    public Map<String, String> getCard() {
        return card;
    }

    public void setCard(Map<String, String> card) {
        this.card = card;
    }

    public Set<String> getGames() {
        return games;
    }

    public void setGames(Set<String> games) {
        this.games = games;
    }

    public String getWife() {
        return wife;
    }

    public void setWife(String wife) {
        this.wife = wife;
    }

    public Properties getInfo() {
        return info;
    }

    public void setInfo(Properties info) {
        this.info = info;
    }

    @Override
    public String toString() {
        return "Student{" + "\n" +
                "name='" + name + "\n" +
                "address=" + address.toString()+ "\n" +
                "book=" + Arrays.toString(book) + "\n" +
                "hobby=" + hobby + "\n" +
                "card=" + card + "\n" +
                "games=" + games + "\n" +
                "wife='" + wife + "\n" +
                "info=" + info + "\n" +
                '}';
    }
}
<bean id="student" class="pojo.Student">
   <!--1、普通注入,直接使用value-->
    <property name="name" value="张三"/>
    <!-- 2、Bean注入  ref -->
    <property name="address" ref="address"/>
<!--        3、数组注入-->
    <property name="book">
        <array>
            <value>红楼梦</value>
            <value>西游记</value>
            <value>水浒传</value>
        </array>
    </property>
<!--        4、list-->
    <property name="hobby">
        <list>
            <value>篮球</value>
            <value>足球</value>
        </list>
    </property>
<!--        5、map-->
    <property name="card">
        <map>
            <entry key="111" value="aaa"/>
            <entry key="222" value="ddd"/>
        </map>
    </property>
<!--        6、set-->
    <property name="games">
        <set>
            <value>cf</value>
            <value>lol</value>
        </set>
    </property>
<!--        7、空值-->
    <property name="wife">
        <null/>
    </property>
<!--        8、properties-->
    <property name="info">
        <props>
            <prop key="违纪记录">无违纪记录</prop>
            <prop key="性别"></prop>
        </props>
    </property>
</bean>

3.拓展方式注入(短命名空间注入)

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- p命名空间注入, 可以直接注入属性的值,property -->
    <bean id="user" class="pojo.User" p:name="aa" p:age="12"/>
    <!-- c命名空间注入, 通过构造器注入,construct-args -->
    <bean id="user2" class="pojo.User" c:age="123" c:name="dddd"/>

</beans>
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 15:57:54  更:2022-03-03 16:01:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:32:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码