Spring之注解实现依赖注入
2024-01-09 14:22:50
1.使用@Autowired注解按类型自动装配引用数据类型
注:自动装配(按类型和名称)基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法。自动装配建议使用无参构造方法创建对象,如果不提供对应的构造方法,应提供唯一的构造方法
package domain;
import org.springframework.stereotype.Component;
@Component
public class Animal {
private String name;
private Integer age;
}
package domain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class People {
@Autowired
private Animal animal;
}
package config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("domain")
public class SpringConfig {
}
import config.SpringConfig;
import domain.People;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Demo {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
People people = ctx.getBean(People.class);
System.out.println(people);
}
}
2.使用@Autowired和@Qualifier注解按名称自动装配引用数据类型(不推荐使用)
注:@Qualifier注解无法单独使用,必须配合@Autowired注解使用
package domain;
import org.springframework.stereotype.Component;
@Component("animal")
public class Animal {
private String name;
private Integer age;
}
package domain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class People {
@Autowired
@Qualifier("animal")
private Animal animal;
}
package config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("domain")
public class SpringConfig {
}
import config.SpringConfig;
import domain.People;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Demo {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
People people = ctx.getBean(People.class);
System.out.println(people);
}
}
3.使用@Value注解实现简单数据类型的注入
package domain;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class Animal {
@Value("maomi")
private String name;
@Value("123")
private Integer age;
}
文章来源:https://blog.csdn.net/Lyhdreamer/article/details/135419285
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!