Spring学习日记02

spring的注解

spring中对注解开发源自于java1.5的支持.个人理解javaWeb开发一直在致力于解放繁重的配置,由xml配置文件到注解,spring的注解就是代替XML文件中<Bean>标签的配置.简单看了spring中一些常用的注解感觉是基于@compont实现的,比如controller和service,像是语义化一样,让使用者知道这是哪个层.
spring 里做单元测试

今天也练习了在spring中做单元测试,步骤还是挺简单的.之前由于没做单元测试最后调试起来挺难受的,所以希望后面可以养成习惯.

springAOP的学习

今天简单了解了AOP的作用和优势,在程序运行期间不修改源代码下对方法进行功能完善,减少了重复代码提高了开发效率.个人理解一个简单功能上的AOP场景,比如在执行具体逻辑前,我想做一个权限校验(当前用户有没有权限呢?),或者在执行完之后要做个其他的什么事情.也就是说在没有对业务核心代码的侵入性前提下,给业务核心代码添加额外的功能也就只有AOP了.以上是我简单理解.

开始一个Spring AOP之旅(注解的方式)

首先自然还是导入依赖,接着对目标类和切面类加入注解,让spring来管理.

@Component("target")
public class ProductServiceImpl implements IProductService {
    @Override
    public void upProduct() {
        System.out.println("upProduct--->success");
    }
}


@Component("aspect")
/**
 * 表示这是一个切面类
 */
@Aspect
public class MyAspect {
    @Before(value = "execution(* com.cxn.service.*.*(..))")
    public void before(){
        System.out.println("前置Advice");
    }
    @After(value = "execution(* com.cxn.service.*.*(..))")
    public void after(){
        System.out.println("后置Advice");
    }
}

接着配置xml文件

    <!--组件扫描-->
    <context:component-scan base-package="com.cxn"></context:component-scan>
    <!--aop的自动代理-->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

最后修改启动类即可.getBean里面的"target"就很好解释了component注解替代<Bean>标签.

public class ApplicationAop {
    public static void main(String[] args) {

        //xml的方式
//        ClassPathXmlApplicationContext applicationContext =
//                new ClassPathXmlApplicationContext("springAop.xml");
//        IUserService iUserService = (IUserService) applicationContext.getBean("target");
//        iUserService.findUser();

        //注解的方式
        ClassPathXmlApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("springAopAnno.xml");
        IProductService iProductService = (IProductService) applicationContext.getBean("target");
        iProductService.upProduct();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值