DI注解
**作用:**解决使用xml配置繁琐的问题
该注解和使用配置文件一样分成两类进行注入:字段注入或属性注入,注入bean(取代xml中的ref)
1.@value注解
使用value注解给属性进行赋值,只能使用于八大基本类型和常量类型/String/Integer…
@value("小小")
private String name;
2.@Autowried,常用
给对象进行赋值或者取对象的值
@Autowired
private StudentServiceImpl studentService;
或者
@Autowired
public void setStudentService(StudentServiceImpl studentService) {
this.studentService = studentService;
}
Auto注解适用于自定义类型或者第三方的类型(application),可以贴在属性上面或者setter方法上面,只使用一种方法就可以
Autowried注意细节:
使用该注解与aop进行连用的时候,贴的类型应该使用接口的类型,否则会和aop创建的代理类发生冲突,若想强制使用就在spring.xml中添加CGLIB
<aop:aspectj-autoproxy proxy-target-class="true"/>
1.可以自动将属性或者字段需要的对象找出来,并注入到属性或者字段上
2.可以贴在属性或者setter方法上面
3.可以注入spring的内置对象,不仅限于自己
4.可以设置@Autowired(required=false)解决对象找不到的错误
5.Autowrited找对象的方式
先找这个的对象的类型,如果找到了这个类型,就注入
若找到多个相同的类型,再根据名字去找,若根据名字没有找到就报错
可以通过设置qualifier(“id”)+@Autowired()通过类型和id进行寻找
3.@resourse
作用和Autowried差不多
需要添加依赖
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
@Resource
private StudentServiceImpl studentService;
和Autowried的作用一样,但是有以下差别
1.他是javax内置的注解
2.注解的这个必须要找到这个对象,否则报错
3.找对象的方式
先通过名字去找,找到就注入
有个多个名字,就通过类型进行寻找,若有多个类型就要报错
使用Resource(name=“id”)指定名字去寻找
IOC注解(贴在实现类上面)
**作用:**解决使用xml繁琐配置的方式创建对象
前提:使用IOC注解需要给spring,xml配置解析器
<!--配置ioc的解析器,可以添加多个-->
<context:component-scan base-package="解析的包1,解析的包2"/>
四种注解,本质上的作用就是一样的,可以写value值
**@Repository:**贴在持久成上面,DAO实现类
@Service:贴在业务层的实现类上面
**@Controller:**贴在控制层上面(springMVC)
**@Component:**若以上不满足就使用这个,一般使用与工具类
例子:
@Repository
public class StudentDAOimpl implements IStudentDAO {....}
bean中初始化和销毁属性的注解
**@Sope:**设置bean的作用域,贴在类上面
**@PostConstruct:**初始化操作,贴在方法上面
**@PreDestroy:**销毁操作,贴在方法上面
代理模式
控制事务
以前存在的问题:
1.代码结构重复,维护成本大
2.责任不分离,业务层面关系到了事务管理,日志管理等等
代理模式的作用
在客户端和真实对象之间起到中介的作用,使各个模块实现责任分离
代理模式的分类
**静态代理:**在程序运行的前,由我们自己创建代理类
**动态代理:**在程序运行的时候由JVM反射生成,类与对象不由我们进行创建
静态代理的实现
在service层的代理类和实现类都是实现同一个service接口,使用代理类实现处理事务的功能,使用实现类进行数据插入的操作
实现同一个接口的作用:方便管理,有约束的功能文章来源:https://www.toymoban.com/news/detail-458999.html
文章来源地址https://www.toymoban.com/news/detail-458999.html
到了这里,关于day06 Spring AOP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!