Java EE

23种设计模式-----行为模式

故事扮演 提交于 2020-08-16 23:56:43
行为模式: 关注系统中对象之间的相互交互,研究运行时对象之间的相互通信和协作,明确对象职责 1.模板方法模式(template method) 定义了一个操作中的算法 骨架 ,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 即:处理步骤父类中定义好,具体实现延迟到子类中定义。 开发中:数据库访问的封装、Junit单元测试、servlet中doGet/doPost方法调用、Hibernate中模板程序等等 银行案例: 1 public abstract class BankTemplateMethod { 2 3 // 具体方法 4 public void takeNumber() { 5 System.out.println("取号排队" ); 6 } 7 8 // 办理具体业务 、钩子方法 9 public abstract void transact(); 10 public void evaluate() { 11 System.out.println("反馈评分" ); 12 } 13 14 // 模板方法 15 public final void process() { 16 this .takeNumber(); 17 18 this .transact(); 19 20 this .evaluate(); 21

Springboot集成flowable modeler web流程设计器

孤人 提交于 2020-08-16 23:48:14
之前画流程图都是用tomcat启动flowable modeler,但是这样启动就不能在分配任务用户/用户组的时候查询自己系统里的数据。所以现在需要把flowable modeler集成到项目里来。 之前自己也搜索了很多文章,都感觉不是很清晰,可能也是因为我刚接触不久。现在自己集成好了之后,记录一下自己学习的结果。 首先需要创建一个springboot应用,pom文件中引入相关jar包: <properties> <java.version>1.8</java.version> <flowable.version>6.4.1</flowable.version> <lombok.version>1.18.0</lombok.version> <fastjson.version>1.2.9</fastjson.version> </properties> < dependencyManagement > < dependencies > < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-dependencies </ artifactId > < type > pom </ type > < scope > import </ scope > </

Spring Boot (十四): 响应式编程以及 Spring Boot Webflux 快速入门

扶醉桌前 提交于 2020-08-16 23:22:41
1. 什么是响应式编程 在计算机中,响应式编程或反应式编程(英语:Reactive programming)是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。(了解源码可+求求: 1791743380) 例如,在命令式编程环境中,a=b+c 表示将表达式的结果赋给 a,而之后改变 b 或 c 的值不会影响 a 。但在响应式编程中,a 的值会随着 b 或 c 的更新而更新。 响应式编程是基于异步和事件驱动的非阻塞程序,只需要在程序内启动少量线程扩展,而不是水平通过集群扩展。 设想一个场景,从底层数据库驱动,经过持久层、服务层、MVC层中的model,到用户的前端界面的元素,全部都采用声明式的编程范式,从而搭建一条能够传递变化的管道,这样我们只要更新一下数据库中的数据,用户的界面上就相应的发生变化,从而无需前端轮询才能获取到最新的数据。 简单来讲,我们以前写的程序是阻塞式的,当一个请求任务过来时,线程会阻塞,等到这个任务完成后再返回出去。而响应式编程则是一个请求任务过来时,会有其他的线程去做处理,当任务执行结束后再异步的通知回去。 2. 为什么要使用响应式编程 在如今互联网时代的大背景下,Web应用通常要面对高并发、海量数据的挑战,性能从来都是必须要考量的核心因素。 阻塞便是性能杀手之一。

SpringCloud之Security

回眸只為那壹抹淺笑 提交于 2020-08-16 22:30:24
Spring Security是Spring提供的一个安全框架,提供认证和授权功能,最主要的是它提供了简单的使用方式,同时又有很高的灵活性,简单,灵活,强大。 我个人博客系统采用的权限框架就是Spring Security,正好整合到SpringCloud里面。 一般系统里关于角色方面通常有这么几张表,角色表、用户-角色表、菜单表、角色-菜单表等。 不过我个人博客系统主要以wordpress作为参考,沿用其12张表,如图: 一、导入Maven依赖 <properties> <jjwt.version> 0.9 . 0 </jjwt.version> <spring-security-jwt.version> 1.0 . 9 .RELEASE</spring-security-jwt.version> </properties> <!-- springsecurity--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring

Spring的启动流程

人走茶凉 提交于 2020-08-16 19:30:31
Spring的启动是建立在Servlet容器之上的,所有web工程的初始位置就是web.xml,它配置了servlet的上下文(context)和监听器(Listener),下面就来看看web.xml里面的配置: <!--上下文监听器,用于监听servlet的启动过程--> <listener> <description>ServletContextListener</description> <!--这里是自定义监听器,个性化定制项目启动提示--> <listener-class>com.trace.app.framework.listeners.ApplicationListener</listener-class> </listener> <!--dispatcherServlet的配置,这个servlet主要用于前端控制,这是springMVC的基础--> <servlet> <servlet-name>service_dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>

Docker中级篇|深入探究Docker

£可爱£侵袭症+ 提交于 2020-08-16 19:20:54
简介: 深入探究Docker Docker镜像理解 Docker镜像是什么 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件 Docker镜像加载原理 UnionFs:联合文件系统 UnionFs(联合文件系统):Union文件系统(UnionFs)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,UnionFs联合文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像 特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录 Docker镜像加载原理 Docker的镜像实际上由一层一层的UnionFs文件系统组成 bootfs:主要包含 bootloader和 Kernel,bootloader主要是引导加 kernel,Linux刚启动时会加bootfs文件系统,在 Docker镜像的最底层是bootfs,这一层与我们典型的Linux/Unix系统是一样的,包含bootfs加载器和内核,当bootfs加载完成之后整个内核就都在内存中了

Servlet+JSP+JDBC学生选课系统

百般思念 提交于 2020-08-16 17:49:21
项目描述 Hi,大家好,今天分享的项目是《学生选课系统》,本系统有三种角色,分别为管理员、老师、学生。每种角色可以登录系统,操作的功能也不一样。总体功能模块如下: 个人信息管理 学生信息管理 课程排名 学生成绩分析 课表显示 学生选课 成绩查询 技术栈 Servlet+JSP+JDBC 运行环境 MyEclipse+Tomcat6以上+MySQL5 项目截图 下载方式 先点在看,再取源码哦,关注[ 一点教程 ]公众号,回复关键词 xz202003 就可以获得下载链接和提取码。如部署过程有问题,后台回复[ 加我 ]添加小助手微信。 欢迎关注我的公众号::一点教程。获得独家整理的学习资源和日常干货推送。 如果您对我的系列教程感兴趣,也可以关注我的网站: yiidian.com 来源: oschina 链接: https://my.oschina.net/u/3038200/blog/4338095

tomcat篇之与apache结合实现反代理(基于模块mod_jk,mod_proxy)

风流意气都作罢 提交于 2020-08-16 16:58:06
apache服务器:192.168.1.155 yum -y install httpd [root@RS1 conf]# httpd -v Server version: Apache/2.2.15 (Unix) Server built: May 11 2016 19:28:33 基于mod_jk模块: wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz tar xf tomcat-connectors-1.2.41-src.tar.gz cd tomcat-connectors-1.2.41-src/native ./configure --with-apxs=/usr/sbin/apxs make && make install 查看是否已经存在mod_jk.so ls -l /etc/httpd/modules/mod_jk.so [root@RS1 conf]# ls -l /etc/httpd/modules/mod_jk.so -rwxr-xr-x. 1 root root 1215731 5月 17 05:35 /etc/httpd/modules/mod_jk.so 配置mod_jk模块 cd /etc/httpd

Spring Boot 中的 Tomcat 是如何启动的?

江枫思渺然 提交于 2020-08-16 16:03:42
作者:木木匠 https://my.oschina.net/luozhou/blog/3088908 我们知道 Spring Boot 给我们带来了一个全新的开发体验,让我们可以直接把 Web 程序打包成 jar 包直接启动,这得益于 Spring Boot 内置了容器,可以直接启动。 本文将以 Tomcat 为例,来看看 Spring Boot 是如何启动 Tomcat 的,同时也将展开学习下 Tomcat 的源码,了解 Tomcat 的设计。 从 Main 方法说起 用过 Spring Boot 的人都知道,首先要写一个 main 方法来启动: @SpringBootApplication public class TomcatdebugApplication { public static void main(String\[\] args) { SpringApplication.run(TomcatdebugApplication.class, args); } } 我们直接点击run方法的源码,跟踪下来,发现最终的 run 方法是调用 ConfigurableApplicationContext 方法,源码如下: public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch

【JAVA开发日常问题】二、使用SpringBoot实现MYSQL批量插入

久未见 提交于 2020-08-16 14:01:30
一、需求背景 SpringBoot没有提供封装好的批量插入的方法,所以自己网上了找了些资料关于批量插入的,不太理想,想要实现SQL语句的批量插入,而不是每条每条插入。 二、解决方案 1. 配置JPA的批量插入参数,使用JPA提供的方法saveAll保存,打印SQL发现实际还是单条SQL的插入。 spring.jpa.properties.hibernate.jdbc.batch_size=500 spring.jpa.properties.hibernate.order_inserts=true spring.jpa.properties.hibernate.order_updates =true 2. 使用JdbcTemplate的方法构造SQL语句,实现批量插入。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.jdbc.core.namedparam