202010-08 Spring Cloud Data Flow初体验以Local模式运行 1前言SpringCloudDataFlow是什么,虽然已经出现一段时间了,但想必很多人不知道,因为在项目中很少有人用。不仅找不到很多中文资料,英文资料也一样少的可怜。这让探索的路更加艰辛,也更加有趣吧。SpringCloudDataFlow是基于微服务的,专门用于流式和批式数据处理的框架。2基本概念2.1数据处理模式数据处理有两种模式,分别是Streaming流式处理和Batch批次处理。Streaming是长时间一直存在的,你数据来了我就处理,没来... 继续阅读 >
202010-08 如何把Spring Cloud Data Flow部署在Kubernetes上 1前言SpringCloudDataFlow在本地跑得好好的,为什么要部署在Kubernetes上呢?主要是因为Kubernetes能提供更灵活的微服务管理;在集群上跑,会更安全稳定、更合理利用物理资源。SpringCloudDataFlow入门简介请参考:SpringCloudDataFlow初体验,以Local模式运行2部署DataFlow到Kubernetes以简单为原则,我们依然是基于Batch任务,不部署与Stream相关的组件。2.1下载GitHub代码我们要基于官方提供的部署代码进行修改,... 继续阅读 >
202010-08 Spring切入点表达式配置过程图解 常用标签:1.<aop:config>作用:声明aop配置2.<aop:pointcut>作用:配置切入点表达式属性:id:唯一标识切入点表达式名称expression:定义切入点表达式3.<aop:aspect>作用:配置切面属性:id:唯一标识切面的名称ref:引用切面类(通知类)bean的id4.<aop:before>作用:配置前置通知(在执行目标对象方法之前执行)属性:method:指定通知方法名称pointcut:定义切入点表达式pointcut-ref:引用切入点表达式的id。5.... 继续阅读 >
202010-08 Spring如何基于注解显式实现自动装配 构建bean文件:publicclassPeople{privateStringname="小明";}编写配置类:@Configuration@Import(ApplicationConfig2.class)publicclassApplicationConfig{@BeanpublicPeoplegetPeople(){returnnewPeople();}}@configuration:说明这是一个配置类,功能几乎等同于<beans>标签@Bean:说明这是一个bean,方法的返回值也就是<bean>中的class属性,方法的名称就是<bean>中的id@Import:用于导入其它的配置类,相当于... 继续阅读 >
202010-08 Spring boot使用多线程过程步骤解析 Spring中实现多线程,其实非常简单,只需要在配置类中添加@EnableAsync就可以使用多线程。在希望执行的并发方法中使用@Async就可以定义一个线程任务。通过spring给我们提供的ThreadPoolTaskExecutor就可以使用线程池。第一步,先在SpringBoot主类中定义一个线程池,比如:packagecom.jmxf.core.config;importjava.util.concurrent.Executor;importorg.springframework.context.annotation.Bean;importorg.springframework.con... 继续阅读 >
202010-08 如何使用Spring Validation优雅地校验参数 引言不知道大家平时的业务开发过程中controller层的参数校验都是怎么写的?是否也存在下面这样的直接判断?publicStringadd(UserVOuserVO){if(userVO.getAge()==null){return"年龄不能为空";}if(userVO.getAge()>120){return"年龄不能超过120";}if(userVO.getName().isEmpty()){return"用户名不能为空";}//省略一堆参数校验...return"OK";}业务代码还没开始写呢,光参数校验就写了一堆判断。这样写虽然... 继续阅读 >
202010-08 Spring boot项目使用thymeleaf模板过程详解 在springboot项目中使用thymeleaf模板,将后台数据传递给前台界面。1、将后台数据传递给前台有很多种方式,可以将后台要传递的数据转换成json格式,去传递给前台,也可以通过model形式去传递出去,这篇博客主要是使用thymeleaf模板,将后台数据传递给前台。2、首先要在springboot项目中添加如下依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></depend... 继续阅读 >
202010-08 Spring手动生成web.xml配置文件过程详解 步骤一:找到自己所创建的项目名,效果如下:步骤二:右击自己所创建的项目————》JavaEETools————》点击GenerateDeploymentDescriptorStub,完成这几步,即可,效果如下:最后,就会生成web.xml配置文件会在WebContent——》WEB-INF文件中,如下:以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。... 继续阅读 >
202010-08 Spring Boot 项目做性能监控的操作流程 SpringBoot特别适合团队构建各种可快速迭代的微服务,同时为了减少程序本身监控系统的开发量,SpringBoot提供了actuator模块,可以很方便的对你的SpringBoot程序做监控。1.actuator接口说明SpringBoot应用中加入监控很简单,只需要在pom.xml文件中加入以下依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>为了保证actuator接... 继续阅读 >
202010-08 图解Spring Security 中用户是如何实现登录的 1.前言欢迎阅读SpringSecurity实战干货系列文章,在集成SpringSecurity安全框架的时候我们最先处理的可能就是根据我们项目的实际需要来定制注册登录了,尤其是Http登录认证。根据以前的相关文章介绍,Http登录认证由过滤器UsernamePasswordAuthenticationFilter进行处理。我们只有把这个过滤器搞清楚才能做一些定制化。今天我们就简单分析它的源码和工作流程。2.UsernamePasswordAuthenticationFilter源码分析UsernamePassw... 继续阅读 >
202010-08 Java中Spring Boot+Socket实现与html页面的长连接实例详解 SpringBoot+Socket实现与html页面的长连接,客户端给服务器端发消息,服务器给客户端轮询发送消息,附案例源码功能介绍客户端给所有在线用户发送消息客户端给指定在线用户发送消息服务器给客户端发送消息(轮询方式)注意:socket只是实现一些简单的功能,具体的还需根据自身情况,代码稍微改造下项目搭建项目结构图pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmln... 继续阅读 >
202010-08 Spring Boot常见外部配置文件方式详析 日常开发和发布我们经常将SpringBoot的配置文件application.properties(或application.yaml)直接放在项目目录下然后打包进jar包.但是在很多时候,我们可能因为CI需要或者安全管理需要集中管理配置文件,这就涉及到外部配置文件的问题.根据SpringBoot官方文档,外部配置文件一般可以放到这4个地方:/config/config也就是:java命令当前运行目录下的config目录;java命令当前运行目录;classpath目录下的config... 继续阅读 >
202010-08 Spring Boot项目使用Flyway的详细教程 Purpose开发人员在合作的时候经常遇到以下场景:1.开发人员A在自己的本地数据库做了一些表结构的改动,并根据这些改动调整了DAO层的代码,然后将代码上传到svn或git等版本控制服务器上。此时如果开发人员B拉取了A的代码改动,在运行项目的时候很可能会报错,因为B的本地SQL数据库并没有修改。2.在项目上线的时候,当服务器拉取的版本控制服务器的最新修改后,必须同时运行SQL数据库的修改脚本,如果忘了跑数据库脚本,那么会出现严... 继续阅读 >
202010-08 Spring boot热部署devtools过程解析 1pom.xml文件注:热部署功能spring-boot-1.3开始有的<!--添加依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><!--optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入--><optional>true</optional></dependency>注:project中添加spring-boot-maven-plugin,主要在eclipse中使用,idea中不... 继续阅读 >
202010-08 Spring AOP里的静态代理和动态代理用法详解 什么是代理?为某一个对象创建一个代理对象,程序不直接用原本的对象,而是由创建的代理对象来控制原对象,通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间什么是静态代理?由程序创建或特定工具自动生成源代码,在程序运行前,代理类的.class文件就已经存在通过将目标类与代理类实现同一个接口,让代理类持有真实类对象,然后在代理... 继续阅读 >
202010-08 详解SpringBoot修改启动端口server.port的四种方式 方式一:配置文件application.propertiesserver.port=7788方式二:java启动命令#以应用参数的方式java-jar<path/to/my/jar>--server.port=7788#或以JDK参数的方式java-Dserver.port=7788-jar<path/to/my/jar>方式三:环境变量SERVER_PORTLinux:SERVER_PORT=7788java-jar<path/to/my/jar>Windows:SETSERVER_PORT=7788java-jar<path/to/my/jar>方式四:环境变量SPRING_APPLICATION_JSONLinux:SPRING_APPLICATION_... 继续阅读 >