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】(2) -> 正文阅读

[Java知识库]【Spring】(2)

DI(依赖注入)

set注入

举例所有的set注入方法

<!--第一种,普通值注入,使用value-->
<property name="name" value="sb"/>

<!--第二种,bean注入,使用ref-->
<property name="address" ref="address"/>

<!--数组注入-->
<property name="books">
    <array>
        <value>西游记</value>
        <value>三国演义</value>
        <value>水浒传</value>
        <value>红楼梦</value>
    </array>
</property>

<!--List注入-->
<property name="hobbies">
    <list>
        <value>唱跳rap</value>
        <value>篮球</value>
    </list>
</property>

<!--Map注入-->
<property name="cards">
    <map>
        <entry key="红桃" value="K"/>
        <entry key="方块" value="J"/>
    </map>
</property>

<!--Set注入-->
<property name="games">
    <set>
        <value>lol</value>
        <value>cf</value>
    </set>
</property>

<!--空指针注入-->
<property name="wife">
    <null/>
</property>

<!--Properties注入-->
<property name="info">
    <props>
        <prop key="un">sb</prop>
        <prop key="pwd">123456</prop>
    </props>
</property>

p和c命名空间

p命名空间

带有 p 命名空间的 XML 快捷方式

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

举个简单的例子,User类含有 name 和 age 两个参数。p就代表参数property,可以理解为根据参数注入。

<!--p命名空间注入(property)-->
<bean id="user" class="com.zxt.pojo.User" p:name="sb" p:age="18"/>
c命名空间

带有 c 命名空间的 XML 快捷方式

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

c代表construct-args,理解为通过有参构造注入。

<!--c命名空间注入(construct-args)-->
<bean id="user2" class="com.zxt.pojo.User" c:name="sb2" c:age="182"/>

自动装配

byname

autowire="byName"放在bean里,举个例子:

<bean id="people" class="com.zxt.pojo.People" autowire="byName">
    <property name="name" value="sb"/>
</bean>

要保证id唯一

bytype

autowire="byType"放在bean里,和byname类似。
优点: 通过bytype自动注入的bean,id可以省略。
要保证类型唯一

通过注解

  1. 导入约束
  2. 配置注解的支持

<context:annotation-config/> ???? 这是注解的支持

配置文件:

<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <context:annotation-config/>

</beans>

在属性上使用@Autowired,让这个属性自动注入,可以忽略对应的 setter 方法。
更多用法:
@Autowired(required = false)自动装配,且这个对象可以为null。与此相同的还有一个注解@Nullable,在参数列表里,某个参数前加这个注解,那么这个参数可以被传入null。
@Qualifier("value")当同一类型对象只有一个时,自动装配根据 bytype,当同一类型对象是多个时,就会根据 byname 自动装配,这个注解就是某个类型有多个对象,装配 id 为 value 的那个。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:02:36  更:2022-05-07 11:03:11 
 
开发: 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/23 23:53:27-

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