注解:
昨天学了配置文件,感觉还不错,确实之前new的方式好了很多,今天继续学习注解。
OK,开始进的入门案例
第一步,配置扫描注解,
注意:其中base-package 后面的参数是应new的对象所在包。
第二步,在需要注解的实体类加上注解。
第三步
就是和之前一样。。。。
根据刚才的小例子,我测试了一下,发现了有错误,but…我语法没错啊。。。
在我各种调试之后发现,缺个jar包,只有配置文件的六个jar包是不够的, jar包害死人啊!还有需要一个aop的jar包。
@component有三个衍生注解,分别管理web层(@controller),dao层(@repository),和service层 (@service)
属性注入:@Value 注入普通数据类型
@ Autowire 注入的对象类型 +@Qualifier 强制使用名称注入
@resource=@ Autowire ++@Qualifier(此注解属于java注解)
一般情况下实体类和实现类要加注解,而接口就不需要直接。
这是用到了service类注解。
进入下一阶段,aop面向切面编程
举个例子,需要对目标文件进行修改或提高,恻然这时就需要采用动态代理,而所谓的动态代理就是在不改变的情况下,给源码外层加上一个保护层,里面可以写增强代码,动态代理有两种方式,第一种就是jdk动态代理,在有接口的情况下使用此方式,第二种动态代理是cglib,在没有接口的情况下使用子类代理。
扩展一下,一般大型公司完成项目的流程是service接口,实现类,dao接口,dao层最后是web层,,而小公司的项目就是很直接的方式 jsp--》action--》service--》dao
AOP的相关术语:连接点(joinpoint):比如备选的要增强的方法,add,delete,update,select,
切入点(cutpoint):比如要增强的方法,以上列举的一个或多个
增强(advice),织入,目标,介绍,切面。
aop主要是利用配置文件去配置,需要从注解的思想中跳出来。
切入点表达式:execution(public * 包名。方法名())
切入点分为:前置通知:方法执行之前增强
后置通知 after-return:方法执行之后增强,若遇到异常则不增强
最终通知:无论异不异常,都是在最后增强
异常通知:
环绕通知;
敲代码的意义是什么???
怎样才能学好它??