spring依赖

目录

1.spring DI

2.如何实现注入对象的属性值

(1)创建一个类:---提供set方法

(2)配置文件:---在bean标签中

        1.注入类对象类型

        2.注入集合类型、注入set和map集合

3.自动注入

3.1、通过xml配置实现自动注入

3.2 注释


1.spring DI

IOC:控制反转 创建对象!

DI:依赖注入:目的就是给对象中的属性赋值。

依赖注入的类型有哪些:

基本数据类型, 字符串类型,引用类型,集合类型。

2.如何实现注入对象的属性值

(1)创建一个类:---提供set方法

public class Student {
    private Integer age;
    private String name;
    private Clazz clazz;
    private List<String> hobby;
    private Integer[] sex;
    private Set<String> set;
    private Map<String ,String> map;

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

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

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

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

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                ", clazz=" + clazz +
                ", hobby=" + hobby +
                ", sex=" + Arrays.toString(sex) +
                ", set=" + set +
                ", map=" + map +
                '}';
    }

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

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

    public Integer[] getSex() {
        return sex;
    }

    public void setSex(Integer[] sex) {
        this.sex = sex;
    }

    public Clazz getClazz() {
        return clazz;
    }

    public void setClazz(Clazz clazz) {
        this.clazz = clazz;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

}

(2)配置文件:---在bean标签中<property name="属性名" >

        1.注入类对象类型

        2.注入集合类型、注入set和map集合

 代码展示:

<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="student01" class="com.qy151wd.demo.Student">
<!--property:表示为类中属性注入值,调用的为set方法
                name:表示属性名
                value:注入基本类和字符串类型时使用value
                ref:注入的为类以及接口对象类型。引入其他bean的id
        -->
    <property name="age" value="56"/>
    <property name="name" value="张三"/><!--value是Integer和String类型使用-->
    <property name="clazz" ref="clazz02"/><!--ref引用类型使用-->
    <!--list允许重复-->
    <property name="hobby">
        <list>
            <value>睡觉</value>
            <value>吃饭</value>
            <value>玩游戏</value>
        </list>
    </property>
    <property name="sex">
        <array>
            <value>0</value>
            <value>1</value>
            <value>2</value>
        </array>
    </property>
    <!--不允许重复-->
    <property name="set">
        <set>
            <value>abc</value>
            <value>abc</value>
            <value>def</value>
            <value>gkh</value>
        </set>
    </property>
    <property name="map">
        <map>
           <entry key="name" value="张三"/>
            <entry key="age" value="15"/>
            <entry key="sex" value="男"/>
        </map>
    </property>
</bean>
    <bean id="clazz01" class="com.qy151wd.demo.Clazz">
        <property name="cId" value="1"/>
        <property name="cName" value="qy151"/>
     </bean>
    <bean id="clazz02" class="com.qy151wd.demo.Clazz">
        <property name="cId" value="2"/>
        <property name="cName" value="qy155"/>
    </bean>
</beans>

3.自动注入

3.1、通过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 
http://www.springframework.org/schema/beans/spring-beans.xsd">
     <bean id="controller" class="com.qy151wd.demo02.UserController" autowire="byName"/>
     <bean id="userDao01" class="com.qy151wd.demo02.UserDao01"/>
</beans>

autowire属性有两种方式:

  • byName:通过对应中的变量名来找xml对应的id与变量名相同的bean
  • byType: 只要是该类或是子类都可以找到,但是有多个会有歧义性,报错。

3.2 注释

下面几个注释都可以把类加到xml中,并添加相应的bean:

  • @Service
  • @Repository
  • @Controller
  • @Component

前三个基本没区别,本质上还是调用的@Component注解。

但是要注意需要让springmvc配置文件能扫描到注释。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值