一:自动注入
1.在spring配置文件中对象名和ref=“id” id 名相同使用自动注入,不需要配置
2.两种配置方法
2.1 在标签中通过autowire="“配置,只对这个bean有效
2.2 在标签中通过default-autowire=”“配置,表示当前文件中所有都是全局配置内容
3. autowire=”“可取值
3.1 default: 默认值,根据全局default-autowire=”"值,默认全局和局部都没有配置的情况下,相当于no
3.2 no: 不自动注入
3.3 byName: 通过名称自动注入,在spring容器中找类的id
3.4 byType: 根据类型注入(spring容器中不可以出现两个相同类型的bean,否则会报错)
3.5 constructor: 根据构造方法注入
二. Spring中加载配置文件
当我们需要用spring去加载一些配置文件,例如数据库连接等配置文件时,我们可是使用spring提供的一些标签
1.在src下新建 xxx.properties配置文件
2.在spring配置文件中引入xmlns:context="http://www.springframework.org/schema/context"
在下面添加
<context:property-placeholder location="classpath:xxx.properties"/>
- 如果需要加载多个配置文件,用逗号分隔
配置文件内容
jdbc.username=root
jdbc.password=123456
那我们可以使用 ${}来取得配置文件的值
<bean id="JDBC" class="com.mlj.springstudy.JDBC">
<property name="password" value="${jdbc.password}"></property>
<property name="username" value="${jdbc.username}"></property>
</bean>
当然我们也可以使用注解 @Value()来配置bean
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
这样不用配置标签也能达到同样的目的
三.scope属性
1.bean的属性
2.控制对象的有效范围(单例,多例)
3.bean标签对应的对象默认是单例的
4.scope可取值
- singleton 默认值,单例
- prototype 多例,每次获取重新实例化
- request 每次请求重新实例化
- session 每次会话内,对象是单例的