Spring笔记

1.Spring用到的动态代理分为java动态代理和CGILB动态代理,相同点是都是通过反射机制创建运行时被代理类,不同是后者不依赖接口,而是创建被代理类的子类。


2.java动态代理的实现步骤:通过实现InvocationHandler接口创建自己的调用处理器;通过Proxy指定类加载器/接口/处理器来创建代理类;通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型;通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数被传入。


3.MyBatis主要配置:

properties:驱动类/数据库地址/用户民密码

settings:Mybatis底层设置配置

typeAliases:别名,可继承BaseTypeHandler自行实现

environment:

    -- transactionManager :实现TransactionFactory可自行实现

    -- dataSource:数据源环境 POOLED/UNPOOLED/JNDI


4.AOP的描述:

使用动态代理技术,将代码织入对应的流程环节中,典型的场景就是数据库事务物,开发者不需要关心异常回滚和资源关闭的具体逻辑。

利用@Aspect @Pointcut等注解即可完成AOP开发。常见功能如埋点和行为统计。


5.@Transactional失效:

@Transactional底层实现是AOP技术,因此对于静态和非public方法是失效的。

另外,如果事务方法调用本类中方法,就不会产生代理对象,同样会使AOP失效。


6.SpringMVC的请求处理流程


7.微服务架构的优点:

~    易于开发和维护,一个服务关注一个功能,业务清晰,代码量少;

~    单个微服务启动快;

~    局部修改容易部署,适合快速迭代;

~    技术栈不受限;

~    便于按需横向伸缩。

微服务的缺点:

~    运维要求高;

~    复杂性高,系统容错、网络延迟、分布式事务都会带来巨大挑战;

~    服务间通信有性能损耗;

~    重复劳动。


8.微服务的设计原则:单一职责、服务自治、轻量级通讯、服务粒度


9.Eureka:服务注册发现及心跳监控;

Ribbon:负载均衡;

Feign:声明式Restful调用(@FeignClient);

Hystrix:实现微服务熔断和超时,结合Turbine可以做到集群监控;

Zuul:微服务网关;与Nginx配合使用保证高可用性,主要功能:身份认证与安全、审查与监控、动态路由、压力测试、负载分配、静态响应处理、多区域弹性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.Spring整体架构 1)核心容器(Core Container) Core模块,主要包含了Spring框架基...
    Sponge1128阅读 1,095评论 0 1
  • 深入使用 Spring两种后处理器Bean 后处理器容器后处理器属性占位符配置器重写占位符配置器Spring 的自...
    渐丶忘阅读 1,113评论 0 1
  • 在生活中,监控用电量是一个很重要的功能,但并不是大多数家庭重点关注的问题。软件系统的一些功能就像家里的电表一样,这...
    yjaal阅读 597评论 0 3
  • Spring 框架两大核心机制(IoC、AOP) IoC(控制反转)/ DI(依赖注入) AOP(面向切面编程) ...
    Juntech阅读 88评论 0 0
  • 一从梅粉褪残妆,涂抹新红上海棠。开到荼蘼花事了,丝丝天棘出莓墙。 ...
    桃知鲤阅读 361评论 2 0