《从零开始写JavaWeb框架》(4-5章)学到的东西

AOP

1,先做注解Aspect,它的值限定成也必须是注解

2,建立Proxy接口,ProxyChain类和ProxyManger类。
ProxyManager是用来执行代理(CGlib方式)的代码(Proxy和ProxyChain)的。ProxyChain和Proxy嵌套调用执行代理代码。

Proxy:作用是来定义一个个增强(也叫通知)。
ProxyChain:作用是来按顺序调用Proxy(也就是增强),在把Proxy都调用完之后,调用被代理的原始方法(也就是接入点)(调用原始方法是使用Cglib的方式)。
ProxyManager:作用是为每个要被代理的类,用Cglib和ProxyChain生成一个代理调用,并执行ProxyChain的doProxyChain方法,来执行增强和被代理的方法。

3,AopHelper取得要被代理类和代理类,把代理类加到要被代理的类上。然后保存到BeanHelper里。


Transaction
1,事务也是一种AOP,这个AOP应该放到AOP链的最后一个,也就说事务的AOP被调用完后,就应该调用“目标方法”了。因为事务只保证“目标方法”里的事务完整性,不需要保证目标方法被调用时,其它的AOP的事务和目标方法事务合起来的完整性。


Security:
1,ServletContextListener,ServletContainerInitializer:
以上 ServletContext 新增的方法要么是在 ServletContextListener 的 contexInitialized 方法中调用,要么是在 ServletContainerInitializer 的 onStartup() 方法中调用。
ServletContainerInitializer 也是 Servlet 3.0 新增的一个接口,容器在启动时使用 JAR 服务 API(JAR Service API) 来发现 ServletContainerInitializer 的实现类,并且容器将 WEB-INF/lib 目录下 JAR 包中的类都交给该类的 onStartup() 方法处理,我们通常需要在该实现类上使用 @HandlesTypes 注解来指定希望被处理的类,过滤掉不希望给 onStartup() 处理的类。
2,Ehcache:最流行的纯Java开源缓存框架
3,

Soap和Rest服务:
1,CXF可以发布Rest服务,Spring自己也可以发布Rest服务,那他们有什么区别呢?
参考:javax.ws.rs 创建 restful 服务 与使用 spring框架创建的 restful有啥区别呢?

2,有的文章上写CXF结合Spring发布Rest服务,为什么CXF要和Spring结合发布Rest服务呢?这样的做法,就是要用到“CXF写程序的可移植性“(把程序拿到其它符合jax-rs标准的框架中使用),并且用到Spring的“事务”等特点。
Spring和CXF结合的文章可以参考:CXF学习笔记三(发布restFul)

3,CXF的一些架构体系。

4,CXF的jax-ws服务的几种发布方法,有静态代理,动态代理,还有Simple方式的。Simple方式的有局限性,动态方式的服务名是通过“字符串+反射”的方式做的,容易出错。项目上使用的是“静态+wsdl2java”方式,感觉还不错。

5,还可以为soap服务加密,把Body内容全都给加密了。

6,如何把把发布soap服务功能,变成框架的一部分,或是一个插件。

7,通过CXF的jax-rs发布Rest服务,如何实现REST服务跨域访问(JSONP(只能跨域访问GET服务)和CORS(可以跨域访问各种服务))。

其它:

  • Apache 工具类:生成hashCode等基础方法
  • Apache 工具类:编码解码类
  • Collections.synchronizedMap(new HashMap<>())生成同步的Map
  • ThreadLocal的实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值