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

2025-11-20 22:54:06

1、首先新建一个Boss实体类,在这个实体类中有一个其他的组件。

package com.gwolf.vo;

import org.springframework.stereotype.Component;

@Component

public 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.gwolf.test;

import org.junit.Test;

import 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.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

@Component

public 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中。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢