美文网首页
Spring笔记

Spring笔记

作者: 赤山红土 | 来源:发表于2020-03-27 14:11 被阅读0次

    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配合使用保证高可用性,主要功能:身份认证与安全、审查与监控、动态路由、压力测试、负载分配、静态响应处理、多区域弹性。

    相关文章

      网友评论

          本文标题:Spring笔记

          本文链接:https://www.haomeiwen.com/subject/yjyluhtx.html