Spring 创建对象的方式
无参方式创建对象
实现类:
public class ReadDaoImpl implements ReadDao {
private String str = "我是杂志";
public ReadDaoImpl(){
}
public ReadDaoImpl(String str){
this.str=str;
}
@Override
public void getString() {
System.out.println(str);
}
}
set方式实现
如果我们去掉实现类的无参构造方法,会报错。因此默认是无参构造的方式创建对象。
bean文件
有参方式创建对象
- 根据下标赋值
- 根据类型注入(不推荐)
根据类型注入需要注意当类型一致时根据顺序依次注入因此不推荐使用
- 根据名称注入
Spring配置 别名
顾名思义
UserService userService = (UserService) context.getBean("userService");
UserService userServiceNew = (UserService) context.getBean("userServiceNew");
上边代码获取的是同一个对象。
bean配置
bean标签
- id指的是注入的对象名称(唯一标识符通过该名称获取bean)
- class指的是注入的对象的类型
- name指的是别名也就是说此时通过userService,s1,s2,s3,s4获取的对象一致。
- name是决定UserService类中的那个参数
- ref bean配置文件中的bean名称,主要是Spring已经创建的对象进行注入
- value注入的类型,新建对象进行创建
【Spring 创建对象的方式】导入,当我们联合开发通过导入将文件内容合并
推荐阅读
- Spring入门(一)
- @Bean与@Component 用在同一个类上,会怎么样()
- 最全的Spring依赖注入方式,你都会了吗()
- 数据转pdf(包含echarts图表)
- spring之源码环境构建
- 大厂常考的Spring面试题
- 为什么私有方法上的Spring Cache注解不生效()