Java EE

面向对象设计原则和思想

本秂侑毒 提交于 2020-08-12 04:28:07
一 单一职责原则 1.1 单一职责原则概念 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。这个原则的英文描述是这样的:A class or module should have a single responsibility。如果我们把它翻译成中文,那就是:一个类或者模块只负责完成一个职责(或者功能)。 一个类只负责完成一个职责或者功能。也就是说,不要设计大而全的类,要设计粒度小、功能单一的类。换个角度来讲就是,一个类包含了两个或者两个以上业务不相干的功能,那我们就说它职责不够单一,应该将它拆分成多个功能更加单一、粒度更细的类。 1.2. 类的职责是否单一如何判断 不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实际上,一些侧面的判断指标更具有指导意义和可执行性,比如,出现下面这些情况就有可能说明这类的设计不满足单一职责原则: 类中的代码行数、函数或者属性过多; 类依赖的其他类过多,或者依赖类的其他类过多; 私有方法过多; 比较难给类起一个合适的名字; 类中大量的方法都是集中操作类中的某几个属性。 1.3. 类的职责是否设计得越单一越好 单一职责原则通过避免设计大而全的类,避免将不相关的功能耦合在一起,来提高类的内聚性。同时,类职责单一,类依赖的和被依赖的其他类也会变少

多台Tomcat Session共享

二次信任 提交于 2020-08-12 04:25:14
1.安装nginx 在192.168.60.202上安装nginx服务,安装过程如下: `#yum -y install epel-release lrzsz zip unzip wget tree git dpkg pcre pcre-devel openssl openssl-devel gd-devel zlib-devel gcc #wget http://nginx.org/download/nginx-1.18.0.tar.gz -O /data #tar -xf nginx-1.18.0.tar.gz #cd nginx-1.18.0/ #./configure --prefix=/data/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --with-http_gzip_static_module --with-http_dav_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module #make && make install #/data/nginx/sbin/nginx

Tomcat-架构

孤街醉人 提交于 2020-08-12 03:47:53
一、Tomcat顶层架构 Tomcat中最顶层的容器是Server,代表着整个服务器, 一个Server可以包含至少一个Service,用于具体提供服务。 Service主要包含两个组件:Connector和Container 1、Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化; 2、Container用于封装和管理Servlet,以及具体处理Request请求; 一个Tomcat中只有一个Server 一个Server可以包含多个Service 一个Service只有一个Container,但是可以有多个Connectors,这是因为一个服务可以有多个连接,如同时提供Http和Https链接,也可以提供向相同协议不同端口的连接, 比如 : 在tomcat的conf目录下的server.xml配置文件 图示如下:(Tomcat版本为8.0) 配置文件中 Server Service Connector等结构图如下: Server标签设置的端口号为8005,shutdown=”SHUTDOWN” ,表示在8005端口监听“SHUTDOWN”命令,如果接收到了就会关闭Tomcat。 一个Server有一个Service,当然还可以进行配置,一个Service有多个,Service左边的内容都属于Container的

Spring全局异常处理

自闭症网瘾萝莉.ら 提交于 2020-08-12 03:46:57
最近学习Spring时,认识到Spring异常处理的强大。之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑: 1 try { 2 .......... 3 } catch (Exception1 e){ 4 .......... 5 } catch (Exception2 e){ 6 ........... 7 } catch (Exception3 e){ 8 ........... 9 } Spring能够较好的处理这种问题,核心如下,文章主要关注前两个: @ExceptionHandler:统一处理某一类异常,从而能够减少代码重复率和复杂度 @ControllerAdvice:异常集中处理,更好的使业务逻辑与异常处理剥离开 @ResponseStatus:可以将某种异常映射为HTTP状态码 @ExceptionHandler 源码如下: 1 @Target({ElementType.METHOD}) 2 @Retention(RetentionPolicy.RUNTIME) 3 @Documented 4 public @ interface ExceptionHandler { 5 Class<? extends Throwable>[] value() default {}; 6 }

SSM项目案例搭建整合含源码(IDEA版)轻松上手

跟風遠走 提交于 2020-08-12 03:43:53
环境: IDEA MySql5.7以上 Tomcat7.0以上 Maven3.0以上 运用Spring MyBatis,mysql 简单前端知识总结来说,配置地狱,各种配置,恶心到吐,还是springboot香,但是总要有个过程吧,难受完了,你会看到新的曙光 1.简洁的运行截图,花里胡哨可以自己加,基础的增删改查CRUD工程师 2.数据库建表,我这里是navicat CREATE DATABASE `ssmbuild` ; USE `ssmbuild` ; DROP TABLE IF EXISTS `books` ; CREATE TABLE `books` ( `bookID` INT ( 10 ) NOT NULL AUTO_INCREMENT COMMENT '书id' , `bookName` VARCHAR ( 100 ) NOT NULL COMMENT '书名' , `bookCounts` INT ( 11 ) NOT NULL COMMENT '数量' , `detail` VARCHAR ( 200 ) NOT NULL COMMENT '描述' , KEY `bookID` ( `bookID` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8 INSERT INTO `books` ( `bookID` ,

Intellij IDEA导入web项目详解(解决访问的404)

ぃ、小莉子 提交于 2020-08-12 02:12:10
开始时的首页 点击modules 点击modules界面的Paths 点击Libraries 选择lib文件 点击Facets 选择项目 这就是我404的主要原因,因为小白第一次使用idea 所以很疯狂的一直百度,到后面的google搜索,终于在经过1天半的时间找到问题了 web.xml这里要修改,默认的与web.xml位置是不同的,不知道你们的是不是,反正我的是 点击又下角的create Artifact 或者点击Artifact 然后重新点击回modules,点击Dependencies 选择好tomcat,完成 开始配置tomcat 最后点击OK 完成配置 启动tomcat 访问,访问成功 公众号 欢迎关注我的公众号“ 码上开发 ”,每天分享最新技术资讯、最优原创文章。关注获取最新资源 版权声明:本文为不会代码的小白原创文章,未经允许不得转载。 来源: oschina 链接: https://my.oschina.net/u/4382774/blog/4339768

maven springboot jpa 分离打包

匆匆过客 提交于 2020-08-12 02:08:14
< build > < finalName > ${build.finalName} </ finalName > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-maven-plugin </ artifactId > < configuration > < executable > true </ executable > < includeSystemScope > true </ includeSystemScope > </ configuration > </ plugin > < plugin > < groupId > com.mysema.maven </ groupId > < artifactId > apt-maven-plugin </ artifactId > < version > 1.1.3 </ version > < executions > < execution > < goals > < goal > process </ goal > </ goals > < configuration > < outputDirectory > target/generated-sources/java

SpringSecurity(1)---认证+授权代码实现

一个人想着一个人 提交于 2020-08-12 01:23:15
认证+授权代码实现 Spring Security是 一种基于 Spring AOP 和 Servlet 过滤器的安全框架 。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。 有关认证和授权的理论知识,之前有写过相关博客。 了解权限管理 一、SpringSceurity工作流程 网上找一张图,觉得画的挺好的,比较容易理解。不然换的是源码流程图很难去理解。 图片地址 : 地址 可以单机放大看更加清楚 要想理解这张图建议看下这篇博客,因为这张图中需要自定义的My...类,在文章中都有说明,所以更好理解点。 Spring Boot Security 详解 二、认证+授权代码 这里只展示一些核心代码,具体完整代码放在github上。 1、UserDetails接口 Security 中的用户接口,我们自定义用户类要实现该接口, 用于向security中注入当前用户的姓名密码,和拥有的角色 。同时也包含一些其它信息,比如当前用户是否过期, 账号是否锁定等等。 自己定义User实现这个接口 public class User implements UserDetails { private String username; private String password; private List<Role> roles; /** * 获取用户名 */

自学 Java,看视频教程和代码能看懂,自己写就写不出来,应该怎么办

本小妞迷上赌 提交于 2020-08-12 00:30:14
一、代码量太少了,看得多做得少,导致一做就错。 任何一个 nb 的开发人员必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时候可能觉得写一个输出 helloworld 的程序太简单了,几乎一秒钟就看懂了,因为没什么逻辑,非常简单,但是当你实践的时候你有可能会 出现 1 、找不到文件,原因可能是你在 cmd 里面用 javac 编译的时候 把文件名都写错了。 这种情况你用 dir 命令查看一下当前路径下的文件从名字上就可以看出究竟有没有你的文件。 2 、可能会出现你的类名和文件名不统一 3 、也有可能出现乱码,用 javac –encoding utf-8 test.java 指定编码就可以解决了。 当然就这简单的几行代码还有可能出很多问题,比如关键字写错,分号不是在英文模式下写的等等。 总之在你们看来一个最为简单的问题上自己来操作都有可能会出错的,而这些你看起来简单实操却出问题的事问题的根本在于你练习得太少了。当然前提是你看懂了代码,如果连代码都没看懂,那实操咱们就不用说了。如果要想入门 第一就是懂,第二就是敲代码,学编程切忌只学理论,学习和敲代码应该是占 4,6 分的比例。可能大部分新手朋友都搞反了。 二、没搞懂的问题没有得到及时的解答 在咱们自学的道路上遇到问题肯定是非常正常的

【Spring】HandlerExceptionResolver 异常处理器工作原理分析

感情迁移 提交于 2020-08-12 00:16:15
HandlerExceptionResolver Spring 全局异常处理 常用异常处理器 DefaultErrorAttributes: 用于BasicErrorController用于错误信息视图展示 ExceptionHandlerExceptionResolver: 请求和响应参数处理异常 ResponseStatusExceptionResolver: 响应状态码异常处理: @ResponseStatus 指定特定响应码异常处理,例如设置自定义提示信息 DefaultHandlerExceptionResolver: 默认异常处理器,常见例如:HttpRequestMethodNotSupportedException、HttpMediaTypeNotSupportedException HandlerExceptionResolver工作原理 1. 自定义异常处理器 源码:org.springframework.web.servlet.DispatcherServlet.initHandlerExceptionResolvers private void initHandlerExceptionResolvers(ApplicationContext context) { this.handlerExceptionResolvers = null; if (this