手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

在java方法、构造器位置使用@Autowired自动装配

时间:2024-10-13 16:48:18

1、首先新建一个Boss实体类,在这个实体类中有一个其他的组件。package com.gwolf.vo;import org.springframework.stereotype.Component;@Componentpublic class Boss { private Car car; public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "Boss [car=" + car + "]"; } }

在java方法、构造器位置使用@Autowired自动装配

2、现在在方法上标注@Autowired注解,使用这个注解之后Spring容器创建当前对象的时候就会调用这个方法,完成赋值。方法使用的参数,自定义的类型的值从IOC容器中获取。

在java方法、构造器位置使用@Autowired自动装配

3、编写一个junit测试类取得vo的组件,然后打印值。package com.g嘛术铹砾wolf.test;import org.junit.Test;i罪焐芡拂mport org.springframework.context.annotation.AnnotationConfigApplicationContext;import com.gwolf.config.MainConfigOfAutowired;import com.gwolf.vo.Boss;public class ComponentTest { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfAutowired.class); @Test public void testImport() { Boss boss = (Boss)applicationContext.getBean(Boss.class); System.out.println(boss); }}

在java方法、构造器位置使用@Autowired自动装配

4、也可以在构造器中注入组件,默认加在IOC容器中的组件,容器启动会调用无参构造器创建对象,再进行初奘疚豫枭始化赋值等操作。package com.gwolf.vo;import org.spri荏鱿胫协ngframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class Boss { private Car car; @Autowired public Boss(Car car) { this.car = car; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "Boss [car=" + car + "]"; } }

在java方法、构造器位置使用@Autowired自动装配

5、如果组件只有一个参数构造器,这个有参构造器的@Autowired可以省略,参数位置的组件还是可以紫宗从容器中获取。@Bean标注的方法创建对象的时候,方法参数的值也是从容器中获取。

在java方法、构造器位置使用@Autowired自动装配

6、上图中Color对象初始化的时候会自动从容器中把car注入到Color中。

© 手抄报圈