自动注入的是对象,字符串不注入
一、
1、在spring配置文件中对象名和 ref ="id" id名相同使用自动注入,可以不配置<property/>
2、两种配置办法:
2.1 在<bean>配置 autowire=" " 配置,只对这个<bean> 生效
2.2 在<beans>中通过default-autowire=" " 配置,表示当前文件中所有的<bean>都是全局配置内容
3、autowire=" " 可取值
3.1 default:默认值,根据全局default-autowire=" " 值。默认全局和局部都没有配置情况下,相当于no
3.2 no:不自动注入
3.3 byName:通过名称自动注入,在spring容器中找类的id
3.4 byType:根据类型注入
3.4.1 spring 容器中不可以出现两个相同类型的<bean>
3.5 constructor:根据构造方法注入
3.5.1 提供对象参数的构造方法(构造方法参数中包含注入对象)
3.5.2 底层使用byName,构造方法参数名和其他<bean>的id相同
二、Spring中加载preperties文件
1、 在src下新建xxx.properties 文件
2、在spring配置文件中先引入xmlns:context,在下面添加
2.1 如果需要记载多个配置文件 逗号分割
<context:property-placeholder location="classpath:db.properties"/>
3、添加了属性文件记载,并且在<bean>中开启自动注入注意的地方
3.1 SqlSessionFactoryBean 的 id 不能叫做 sqlsessionFactory
3.2 修改
3.2.1 把原来的ref 引用替换成value赋值,自动注入只能影响ref,不会影响value赋值
<!-- 扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.bjsxt.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="factory"></property>
</bean>
4、在被spring管理的类中通过 @value("${key}") ,取出properties中内容
4.1 添加注解扫描
<context:component-scan> base-package="com.bjsxt.service.impl" </context:component-scan>
4.2 在类中添加
4.2.1 key和变量名可以不相同
4.2.2 变量类型任意,只要保证key对应的value能转换成这个类型就可以
@Value("${yu.name}") private String test;