0
点赞
收藏
分享

微信扫一扫

Spring 学习总结

墨春 2022-01-11 阅读 140

Spring框架官网学习内容(不太好找)

Core Technologies

小知识点:

一、required

1、@Autowired(required = false)

说明对象可以为null,否则不可以为空。默认required=true。

理解:当required=false时,该属性在spring中可以为没有注册的状态,且打印该属性为null。

如果required=true时,该属性在spring中不可以为没有注册的状态,运行时报错。

具体测试代码:

测试方案,Cat类,TestDao类中包含Car类,Test类执行

1、required=true的情况

Cat类

package com.qian.pojo;

public class Cat {
    private String name;

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                '}';
    }
}

TestDao类

package com.qian.dao;

import com.qian.pojo.Cat;
import org.springframework.beans.factory.annotation.Autowired;

public class testDao {
    @Autowired    //默认即为required=true
    private Cat cat;

    public Cat getCat() {
        return cat;
    }
}

测试类

package com.qian.service;

import com.qian.dao.testDao;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ServiceTest {

    public static  void  main(String[] args){
        //获取ApplicationContext,拿到Spring的容器,通过配置文件获取
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        //容器在手,天下我有,需要什么,就直接get什么
        testDao testDao = context.getBean("testDao", testDao.class);
        System.out.println(testDao.getCat());

    }

}

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"
       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/>

    <bean name="testDao" class="com.qian.dao.testDao" >
    </bean>

</beans>

测试结果报错

 

2、required=false的情况

TestDao变化外,其余不变

package com.qian.dao;

import com.qian.pojo.Cat;
import org.springframework.beans.factory.annotation.Autowired;

public class testDao {
    @Autowired(required = false)
    private Cat cat;

    public Cat getCat() {
        return cat;
    }
}

演示结果:

 

举报

相关推荐

0 条评论