springioc与aop

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sanjiaowuhuan/article/details/102754919

ioc
依赖注入(控制反转)
依赖:
需要的东西
注入:
放进去

业务层对象一般需要数据访问层对象
    以前的做法:
        class UserServiceImpl{
            private UserDao userDao = new UserDaoImpl();
        }
        以上的做法中,在UserServiceImpl中写死了UserDao的实现类,
        如果以后实现类发生变化了,就需要修改源码才能正常使用

    在使用spring的时候
         class UserServiceImpl{
               private UserDao userDao;

               public void setUserDao(UserDao userDao){
                 this.UserDao = userDao;
               }
         }
         在UserServiceImpl中需要UserDao的对象的时候,并没有写死实现类,
         而是下使用UserServiceImpl对象之前,放一个UserDao对象进去
         (通过setter方法把UserDao类型对象设置进去);
         因为没有写死需要的UserDao的实现类,可以很灵活的替换UserDao的实现类对象

         spring负责帮我们创建UserServiceImpl对象,负责创建UserDao的实现类的对象,
         并且把UserDao的实现类的对象通过setUserDao方法注入到UserServiceImpl对象中

aop
面向切面编程
1 把通用的功能提取出来,放在一个单独的类中
LogUtil

2 在spring的配置文件中配置:

创建LogUtil对象,对象id为logUtil

<aop:config>
    <aop:pointcut id="表达式id" expression="哪些类的哪些方法前面要调用的表达式" />
    <aop:aspect ref="logUtil">
        <aop:before method="要在方法执行之前调用的方法名"
        pointcut-ref="引用一个描述在哪些类的哪些方法前面要调用的表达式的id" />
    </aop:aspect>
</aop:config>

3 添加aop相关的jar包

猜你喜欢

转载自blog.csdn.net/sanjiaowuhuan/article/details/102754919