一 Spring 常用注解
1.@Component 创建类对象,相当于配置</bean>
2. @Service 与@Component 功能相同,写在ServiceImpl 类上
3. @Respository 与 @Component,写在数据访问层类上
4. @Controller 与Component 功能相同,写在控制器上
5.Resource(不需要写对象的 get/set)方法
5.1java中的注解
5.2默认按照byName 注入,如果没有对象名称,按照byType注入,
5.2.1建议把名称对象和spring容器中对象名相同
6.@Autowired(不需要写对象的get/set)
6.1 spring的注解
6.2 按照byType注入
7. @Value() 获取 properties 文件中内容
8. @Pointcut() 定义切点
9. @Aspect() 定义切面类
10. @Before() 前置通知
11. @After 后置通知
12. @AfterReturning 后置通知,必须切点正确执行
13. @AfterThrowing 异常通知
14. @Arround 环绕通知
二 自动注入
1. 在Spring配置文件中 对象名和ref=“id” id名相同使用自动注入,可以不配置<property/>
2.两者配置方法
在<bean>中 通过 autowire="" 配置,只对这个<bean> 生效
在<beans> 中通过default-autowrite ="" 配置,表当前文件中所有<bean> 都是全局配置内容
3. auto="" 可取值
default:默认值,根据全局default-autowiire="" 值,默认全局和局部都没有配置情况下,相当于no
no:不自动注入
1. byName:通过名称自动注入,在Spring 容器中找到类的ID
2. byType:根据类型注入
spring 容器中不可以出现两个相同类型的<bean>
3. constructor : 根据构造方法注入
根据对应参数的构造方法(构造方法参数中包含注入对象那个)
底层使用byName,构造方法参数名和其他<bean>的id相同
三 Spring 中加载 properties 文件
在 src 下新建 xxx.properties 文件
在 Spring 配置文件中 先引入xmls:context,在下面添加,
2.1如果需要记载多个配置文件逗号分隔
<context:property-placeholder location="classpath:db.properties"/>
3. 添加属性文件记载,并且在<beans>中开启自动注入注意的地方
sqlSessoinFactoryBean 的 id 不能叫做sqlSessisonFactory
修改
把原来通过ref引用替换成vaule赋值,自动注入只能影响ref,不能影响vaule赋值
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.chen.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="factory"></property>
</bean>
4. 在被 Spring 管理的类中通过@value("${key}") 取出properties 中内容
添加注解扫描
<context:component-scan base-package="com.chen.service.impl"></context:component-scan>
4.2 在类中添加
4.2.1 可以和变量名可以不相同
4.2.2 变量类型任意,只要保证key 对应的vaule 能转换成这个类型就可以
@Value("${my.demo}")
private String test;
四 scope属性
1.<bean>的属性
2. 作用:控制对象有效范围(单例,多例)
3 <bean/> 标签对应的对象默认是单例的。
3.1 无论获取多少次,都是同一个对象
4. scope 可取值
4.1 singleton 默认值,单例
4.2 prototype 多例,每次获取重新实例化
4.3 request 每次请求重新实例化
4.4 session 每个会话对象内,对象是单例的。
4.5 application 在 application 对象内是单例
4.6 global session spring 推出的一个对象,依赖于 spring-webmvc-portlet 类似于session
网友评论