`

Spring Boot 笔记 五 (企业级开发)

 
阅读更多

一, Spring Security

安全框架的二个概念:认证和授权.

   1, 配置

        加注解@EnableWebSecurity并继承WebSecurityConfigurerAdapter

        e,g,

           @Configuration

           @EnableWebSecurity

          public class xxxxx extends WebSecurityConfigurerAdapter{

                   @Override

                 protected void configure(HttpSecurity http) throws Exception{

                     //todo

                  }

         }

   2, 用户认证

       在spring security里我们重写configure(AuthenticationManagerBuilder auth)来实现.

       e.g.

      内存中用户: auth.inMemoryAuthentication().withUser("xx").password("xx").roles("xxx")........

      jdbc用户:  auth.jdbcAuthentication().dataSources(dataSource); ......

    备注: 对于通用的一般需要我们自定义实现UserDetailsService接口,再进行进一步获取用户认证

   3,请求授权

    Spring security 通过重写configure(HttpSecurity http) 方法来实现请求拦截.

    可使用如下匹配器来匹配请求路径:

  • antMatchers: 使用ant风格路径匹配
  • regexMatchers: 使用正则表达式风格

   4, Spring Boot的支持

     Spring Boot针对Spring Security的自动配置在org.springframework.boot.autoconfigure.security包中

      主要通过SecurityAutoConfiguration 和SecurityProperties来完成配置

     SecurityProperties使用以"security"为前缀的属性配置/

     e.g.

      security.user.name=user    #内存中用户默认账号

      security.user.password=  

      security.user.role=

      security.require-ssl=false      #是否需要ssl支持

      security.enable-csrf=false     #是否开启"跨网站请求伪造"支持,默认关闭

      security.basic.enabled=true

      security.basic.realm=Spring

      security.basic.path= # /**

      security.basic.authorize-mode

       .............

      security.ignored= 

        .........

 

二, Spring Batch 批处理

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

     只需注册为Bean加上@EnableBatchProcessing即可

SpringBatch组成部分
名   称 用   途
JobRepository 用来注册Job的容器
JobLanucher 用来启动job的接口
Job 我们要实际执行的任务,包含一个或多个step
Step  
ItemReader 用来读取数据的接口
ItemProcessor 用来处理数据的接口
ItemWriter 用来输出数据的接口

 

 

 

 

 

 

 

 

 

 

 

 

   1, Job 监听

  如果需要监听一个job的执行情况,我们需定义一个类实现JobExecutionListener

   2, 计划任务

   任务是通过JobLauncher的run方法来执行的, 因此我们只需在普通的计划任务方法中执行JobLauncher

    的run方法.

   3, 参数后置绑定

   我们可以在JobParameters中绑定参数.

   在Bean定义的时候使用@StepScope,然后通过@Value注入此参数

   e.g.

   JobParameters jobParameters = new JobParametersBuilder().

                           .addLong("time",xxx)

                            .addString("input.file.name", path);

   JobLauncher.run(xx, jobParameters );

    

     @Bean

     @StepScope

      public ItemReader<XXXX>

       read(@Value("#{jobParameters['input.file.name']}") String pathToFile) throw Exception{

            //TODO

           .....

       }  

   4, Spring Boot 的支持

     源码在org.springframework.boot.autoconfigure.batch下

    Spring.Boot提供如下配置:

     spring.batch.job.names= job1, job2   #启动时执行,默认全部执行

     spring.batch.job.enabled=true    #是否自动执行, 默认true

     spring.batch.initializer.enabled = true   #是否初始化spring batch数据库,默认true

     spring.batch.schema=

     spring.batch.table-prefix=   #设置spring batch的数据库表前缀

 

三, 异步消息

    异步消息主要是为了系统间的通信.

   所谓异步消息即消息发送者无所等待消息接受者的处理及返回,甚至无需关系消息是否发送成功

   两个概念: 消息代理个目的地

   两种形式: 队列和主题. 对于用于点对点, 主题用于发布订阅

    1, 企业级消息代理

    JMS的实现由activeMQ,HornerQ

    AMQP: 也是一种消息代理的规范,不仅兼容JMS还支持跨语言跟平台,主要实现有RabbitMQ.

    JMS       ----> spring-jms :   @JMSListener, @EnableJms

    AMQP   ----> spring-rabbit: @RabbitListener, @EnableRabbit

   2, Spring Boot 的支持

     源码位于: org.springframework.boot.autoconfigure.jms下

    ActiveMQ的连接属性如下:

   spring.activemq.broker-url=tcp://localhost:5555   #消息代理路径

   spring.activemq.user=

   spring.activemq.password=

   spring.activemq.in-memory=true

   spring.activemq.pooled=false

   AMQP的配置属性如下:

   spring.rabbitmq.host=localhost  #服务器地址, 默认localhost

   spring.rabbitmq.user=

   spring.rabbitmq.password=

 

四, Spring Integration 系统集成

    spring integration主要由 Message, Channel, Message Endpoint组成

   1, Message

  •        用来在不同部分之间的传递数据,由消息体和消息头组成

   2, Channel

      消息发送者发送消息到消息通道(Channel), 消息接受者从通道获取消息

      1), 顶级接口

  •  MessageChannel: 消息通道的顶级接口
  • PollableChannel:
  • SubscribableChannel

     2), 常用消息通道

 

  •  PublishSubscribeChannel
  • QueueChannel
  • PriorityChannel
  • RendezvousChannel
  • DirectChannel
  • ExecutorChannel

      3), 通道拦截器

 

      4),  Message Endpoint

  •   Channel Adapter
  • Gateway
  • Service Activator
  • Router
  • Filter
  • Splitter
  • Aggregator
  • Enricher
  • Transformer
  • Bridge

 

 

 

分享到:
评论

相关推荐

    Spring Boot 笔记1

    在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及相关的Maven配置。Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程,提供了一种...

    Spring Boot核心技术-笔记-pdf版.pdf

    以上就是Spring Boot的一些核心概念和技术点,通过这些特性,Spring Boot降低了Spring应用的开发难度,提升了开发效率,是现代Java企业级应用开发的首选框架。希望这份学习笔记能帮助你深入理解和掌握Spring Boot的...

    Spring Boot 学习笔记完整教程.pdf

    由于其易于配置、快速启动和易用性等优点,Spring Boot已经成为许多Java开发者选择用来构建RESTful服务、微服务和轻量级企业级应用的首选框架。 在学习Spring Boot的过程中,通常需要掌握以下知识点: 1. Spring ...

    Spring Boot核心技术-笔记-pdf版.7z

    Spring Boot简化了Java企业级应用的开发过程,通过默认配置、起步依赖和“开箱即用”的特性,使得构建可运行的独立应用变得极其简单。这份笔记将帮助我们深入理解Spring Boot的核心机制,提升开发效率。 首先,我们...

    2小时学会Spring Boot 学习笔记.rar

    Spring Boot和Spring Cloud是Java开发领域中的两大热门框架,它们为构建高效、便捷的企业级应用提供了强大的支持。本文将深入探讨这两个框架的核心概念、应用场景以及如何通过IntelliJ IDEA进行集成开发。 首先,...

    读书笔记:《从企业级开发到云原生微服务Spring Boot 实战》随书代码.zip

    读书笔记:《从企业级开发到云原生微服务Spring Boot 实战》随书代码

    Java企业级信息系统开发学习笔记

    第13篇 Java企业级开发学习笔记(4.2)Spring Boot项目单元测试、热部署与原理分析,介绍了如何使用Spring Boot来实现单元测试、热部署和原理分析,包括创建Spring Boot项目、配置Spring Boot等步骤。 第14篇 Java...

    spring boot 使用笔记,方便快速构建项目springboot笔记 .pdf

    【Spring Boot 使用笔记】 Spring Boot 是一款由 Pivotal 团队推出的框架,旨在简化 Spring 应用的初始搭建以及开发过程。它针对常见的企业级应用需求提供了开箱即用的功能,大大减少了开发者在配置、集成第三方库...

    尚硅谷周阳老师SpringCloud笔记

    SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记旨在帮助开发者理解和掌握SpringCloud的核心概念、组件以及实践方法。 在SpringCloud的学习中,首先需要了解的是SpringCloud...

    Spring 学习笔记五

    在软件开发领域,Spring框架是Java企业级应用开发的基石,其强大的功能和易用性使其成为开发者们的首选。本篇学习笔记将深入探讨Spring框架的核心概念和技术,帮助你进一步理解和掌握这一强大的工具。 一、Spring...

    Spring学习笔记.zip

    Spring是一个开源的Java平台,它为创建企业级应用提供了全面的解决方案。Spring的核心特性可以用于任何Java应用程序,但其丰富的模块化结构特别适用于开发Web应用。Spring框架以其轻量级、依赖注入(DI)和面向切面...

    Spring学习笔记&源码

    Spring框架是Java开发中不可或缺的一部分,它以其IoC(控制反转)和AOP(面向切面编程)的核心特性,极大地简化了企业级应用的开发。本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程...

    达内培训的spring课程笔记

    Spring框架是Java开发中的核心框架,它为构建企业级应用提供了全面的解决方案。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)而闻名,极大地简化了Java应用的...

    JavaEE开发的颠覆者SpringBoot实战

    《JavaEE开发的颠覆者SpringBoot实战》这本书深入探讨了...无论你是Java新手还是经验丰富的开发者,都能从中获益匪浅,理解Spring Boot如何改变JavaEE的开发方式,以及如何利用它来构建高效、稳定的现代企业应用。

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    Spring以其轻量级、模块化和强大的依赖注入特性而闻名,它简化了企业级Java应用的开发,并且鼓励面向切面(AOP)编程。达内教育(Tarena)作为知名的IT培训机构,提供了这套Spring的学习资料,包括笔记和PPT课件,...

    Spring5笔记与代码.zip

    首先,Spring框架是Java企业级应用开发中最广泛使用的轻量级框架,它提供了一个全面的基础设施,支持开发Java应用程序。Spring5作为最新版本,引入了诸多改进和新特性,以适应现代开发需求。 1. **依赖注入...

    Spring高级框架课程笔记.pdf

    * Spring 框架是 Java 企业级应用程序的框架,提供了一个松散耦合的架构,帮助开发者更快速、更简洁地构建企业级应用程序。 * Spring 框架的主要特点是轻量级、灵活、可扩展、松散耦合等。 二、IoC(Inversion of ...

Global site tag (gtag.js) - Google Analytics