• 《Spring Boot 实战》随记


    第一部分 Spring 4.x

    1. Spring基础

      略过

    2. Spring常用配置

      2.1 Bean的scope

        使用@Scope注解配置scope.默认signleton,原型模式prototype

      2.2 Spring EL和资源调用
        支持在xml和注解中使用表达式,需要@PropertySource注解指定文件

      2.3 Bean的初始化和销毁
        使用@Bean(intiMethod="init",destroyMethod="destroy")指定初始化方法和销毁前执行方法。

        使用@Bean配合类内部@PostConstruct,@PreDestroy指定初始化方法和销毁前执行方法。


      2.4 项目Profile
        在容器启动时指定profile(spring.profiles.active),@Bean在实例化时通过@Profile("xxx")指定实例化特定的示例。


      2.5 事件(Application Event)
        Spring事件为Bean和Bean之间消息通信提供支持。如当一个Bean处理完任务后,希望通知另一个Bean做业务处理。
        1) 自定义事件,继承ApplicationEvent 如DemoEvent extends ApplicationEvent
        2) 定义监听器,实现ApplicationListener 如DemoListener immplements ApplicationListener
        3) 使用容器发布事件 如在DemoPublisher中定义方法调用applicationContext.publishEvent(event)

    3. Spring常用配置

      3.1 Spring Aware

        当Bean需要使用容器本身的功能资源时,通过Spring aware调用容器资源。但使用了spring aware后bean和spring框架将耦合

         BeanNameAware  获取到容器中bean的名称

        BeanFactoryAware  获取当前bean的facory

        ApplicationContextAware  当前的applicationContext

        ApplicationEventPublisherAware   应用事件发布器 与applicationContext.publishEvent效果相同

        ResourceLoaderAware   获取资源加载器,可用来加载外部资源

        注:实现ApplicationContextAware可满足以上所有服务,但原则上使用到什么就实现什么接口

       3.2

     

    9. 企业级开发

      9.1 Spring Security

        专门针对基于Spring的项目的安全框架,充分利用了依赖注入和AOP来实现安全功能

        安全框架有两个重要概念:认证和授权

      9.2 批处理Spring Batch

        Spring Batch是用来处理大量数据操作的框架,主要用来读取大量数据,然后进行一定处理后输出指定的形式

      9.3 消息队列

        异步消息中有两个重要概念:即消息代理(message brocker)和目的地(destination)。当消息发送者发送消息后,消息将由broker接管,broker保证消息传递到指定的目的地。

        消息队列主要有两种形式

          队列queue:队列用于点对点式消息通信,确保每一条消息只有唯一的发送者和接收者。

          主题topic:主题用于发布/订阅模式的消息通信,消息发送者发送消息到topic,多个消息接受者监听这个主题

        JMS即JAVA消息服务,是基于JVM消息代理的规范,ActiveMQ是JMS规范的一种实现。

        AMQP是另一种消息代理规范,兼容JMS,支持跨语言和平台。RabbitMQ是AMQP规范的一种实现

        

        

        

    10. 开发部署与测试

      10.1 热部署

      在使用模板开发前端页面时,模板引擎默认开启缓存,此时修改页面代码刷新后页面上不能即时生效,可以在application.properties配置文件中关闭模板引擎缓存:

      spring.thymeleaf.cache=false

      spring.freemarker.cache=false

      spring.groovy.template.cache=false

      spring.velocity.cache=false

       后端代码热部署:①使用Spring Loaded插件,需要在项目启动时指定vm启动参数

               ②使用JRebel

               ③使用spring-boot-devtools,项目中添加依赖

              <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-devtools</artifactId>
                   </dependency>

      10.2 部署方式

        支持以jar和war方式部署,支持以系统服务的方式运行jar包

      10.3 云部署

        使用docker部署应用(本书实例是docker+docker-compose)

      10.4 测试

        在SpringBoot中使用@SpringApplicationConfiguration来配置Application Context

    事例:

      @RunWith(SpringRunner.class)
      @SpringBootTest

    11.应用监控

      springboot提供了一系列的端点监控项目,端点可以在yml或properties配置文件中进行开启和关闭;

      自定义端点:需要继承AbstractEndpoint,是用注解@ConfigurationPropertis(prefix="endpoint.xxx")支持可以在配置文件中通过endpoint.xxx配置端点

      11.1 http方式监控

        通过在项目中集成依赖,来支持端点

    <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
           <groupId>org.springframework.hateoas</groupId>
           <artifactId>spring-hateoas</artifactId>
           <version>0.17.0.RELEASE</version>
    </dependency>

        通过浏览器访问 http://ip:port/actuator/即可查看所有暴露出来的端点

      注意:springboot 1.x 与springboot 2.x有部分差别(访问路径等)

      11.2 JMX方式

        使用jconsole监控项目,如需监控服务器上的应用需要远程连接

      11.3 SSH方式(在2.x版本中已废弃)

        在pom文件中依赖

    <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-remote-shell</artifactId>
    </dependency>
    

         在项目启动时会在控制台打印除ssh的登录密码,使用ssh客户端工具连接即可

                                                                                                                                              

  • 相关阅读:
    团队项目冲刺第6天
    冲刺阶段第五天
    冲刺阶段前四天总结
    "博客园"用户体验分析
    测试计划
    scrum敏捷开发
    团队开发_软件项目风险管理
    sprint计划会议
    svn 之 svn的两种开发模式
    redis 之 搭建真实集群
  • 原文地址:https://www.cnblogs.com/half-two-feet/p/10396740.html
Copyright © 2020-2023  润新知