通过注解方式实现Spring IOCDI

xiaoxiao2025-10-17  7

文章目录

一,什么是Spring IOC/ID二,如何通过注解的方式实现spring IOC/ID1. 创建applicationContext.xml文件,2. 在需要创建对象的类中加入标注。根据对象的不同选择标注元件@Compoment,@Repository, @Service, @Controller。如果类中包含引用类型,则引用类型也需要标注为元件,且在引用类型前需要加自动链接@Autowired3. 创建容器对象,调用容器的getBean方法,类型强转以后就可以得到对象。

一,什么是Spring IOC/ID

Spring IOC(控制反转)/DI(依赖注入)是面向对象的一种设计理念,用来降低程序代码之间的耦合度。 IOC/ID的核心是ApplicationContext容器,容器接管了对象的创建。只要类注册在容器中,容器初始化以后就会为所有类创建单例对象,代码中通过getBean(“beanname”)就可以拿到对象。

二,如何通过注解的方式实现spring IOC/ID

1. 创建applicationContext.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/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!--容器扫描指定包目录下的类文件,此处容器扫描com.leon.pojo下的所有类--> <context:component-scan base-package="com.leon.pojo"/> /beans>

2. 在需要创建对象的类中加入标注。根据对象的不同选择标注元件@Compoment,@Repository, @Service, @Controller。如果类中包含引用类型,则引用类型也需要标注为元件,且在引用类型前需要加自动链接@Autowired

@Component public class User { public int userID; public String userName; } @Component public class Group { private int groupId; private int groupName; @Autowired private User user; }

@Autowired采用按类型匹配的方式为属性自动装载合适的依赖对象,即容器会查找和属性类型想匹配的Bean组件,并自动为属性注入。 如果到不到相匹配的Bean组件,Spring容器会跑出异常。此时如果依赖不是必须的,为避免抛出异常,可以将required的属性设置为false:

@Autowired(required=false)

如果对类中集合类型的成员变量或方法入参使用@Autowired注解,Spring 会将容器中所有和集合元素类型匹配的Bean组件都注入进来。

@Autowired(required=false) private List<Job> toDolist;

3. 创建容器对象,调用容器的getBean方法,类型强转以后就可以得到对象。

@Test public void test1(){ ApplicationContext app= new ClassPathXmlApplicationContext("applicationContext.xml"); User user = (User) app.getBean("user"); Group group= (Group) app.getBean("group"); }
转载请注明原文地址: https://www.6miu.com/read-5038090.html

最新回复(0)