day06 Spring AOP

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接口,使用代理类实现处理事务的功能,使用实现类进行数据插入的操作

​ 实现同一个接口的作用:方便管理,有约束的功能

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值