Java EE

第6章 第1节 spring

↘锁芯ラ 提交于 2021-01-04 09:29:24
● 请你说一下Spring AOP 参考回答: AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切(cross cutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。 AOP技术恰恰相反,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。 使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似

Tomcat 和 Jetty 比较和Spring Boot集成

核能气质少年 提交于 2021-01-04 02:52:10
一、Tomcat 和 Jetty 的比较 Tomcat 和 Jetty 都是作为一个 Servlet 引擎应用的比较广泛,可以将它们比作为中国与美国的关系,虽然 Jetty 正常成长为一个优秀的 Servlet 引擎,但是目前的 Tomcat 的地位仍然难以撼动。相比较来看,它们都有各自的优点与缺点。 Tomcat 经过长时间的发展,它已经广泛的被市场接受和认可,相对 Jetty 来说 Tomcat 还是比较稳定和成熟,尤其在企业级应用方面,Tomcat 仍然是第一选择。但是随着 Jetty 的发展,Jetty 的市场份额也在不断提高,至于原因就要归功与 Jetty 的很多优点了,而这些优点也是因为 Jetty 在技术上的优势体现出来的。 以下从架构、性能和特性三方面进行比较,点击获取完整详细的 Spring全家桶 、 spring技术栈和微服务架实战 视频课程。 1、架构比较 从架构上来说,Jetty 比 Tomcat 更加简单。Jetty 所有组件都是基于 Handler 来实现,当然它也支持 JMX。但是主要的功能扩展都可以用 Handler 来实现。可以说 Jetty 是面向 Handler 的架构,就像 Spring 是面向 Bean 的架构,MyBatis 是面向 Statement 一样,而 Tomcat 是以多级容器构建起来的,它们的架构设计必然都有一个“元 神”

springboot(五)过滤器和拦截器

a 夏天 提交于 2021-01-03 11:37:54
前言 过滤器和拦截器二者都是AOP编程思想的提现,都能实现诸如权限检查、日志记录等。二者有一定的相似之处,不同的地方在于: Filter是servlet规范,只能用在Web程序中,而拦截器是Spring规范,可以用在Web程序中,也可以用在Application程序中。 Filter是servlet中定义的,依赖servlet容器。而拦截器在Spring中定义,依赖Spring容器。 拦截器是一个Spring组件,归Spring管理,配置在Spring的配置文件中,因此它可使用Spring的任何资源。比如Service、数据源等,通过IOC容器注入到拦截器即可,而Filter则不行。 Filter只在servlet前后起作用,而拦截器则能深入到方法前后,异常抛出前后。使用深度更大一些。 Spring中实现过滤器Filter 方法1:使用springboot提供的 FilterRegistrationBean注册自定义过滤器 public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("MyFilter init..."); } @Override public

No bean named 'springSecurityFilterChain' is defined

狂风中的少年 提交于 2021-01-03 07:33:27
1.问题 本文讨论Spring安全配置问题 - 应用程序引导过程抛出以下异常: SEVERE: Exception starting filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined 2.原因 此异常的原因很 简单 - Spring Security查找名为springSecurityFilterChain的bean(默认情况下),但无法找到它。主要的Spring安全过滤器 - DelegatingFilterProxy - 在web.xml中 定义了这个bean: <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/

如何解决springboot参数传中文乱码?

自闭症网瘾萝莉.ら 提交于 2021-01-02 23:37:11
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html 前言 本文案例来自业务部门的一个业务场景。他们的业务场景是他们部门研发了一个微服务上下文透传组件,其透传原理也挺简单的,就是通过springboot拦截器把请求参数塞进threadlocal,然后下游通过threadlocal取到值,服务之间进行feign调用时,再把threadlocal的参数塞到header头里面。这个组件一直用得好好的,突然有一天因为传的参数值是中文,导致乱码。他们通过尝试下面的各种方案,都无法解决。最后就让我们部门排查处理。 业务部门的实现思路 他们一开始的思路方向是参数编码不一致导致中文乱码。于是他们就朝这个方向努力着,于是就有了如下方案 方案一: String value = new String ( "我是中文乱码" .getBytes( "ISO-8859-1" ), "UTF-8" ); 这个是常用解决字符串中文乱码的方法之一 方案二:编写字符编码过滤器 @WebFilter(urlPatterns = "/*",filterName = "CharacterEncodingFilter") public class

jsp页面中显示word/excel文档方法

↘锁芯ラ 提交于 2021-01-02 14:03:17
方法一 iframe直接引入excel文件 <form id="form1" runat="server"> <iframe src="./11111.xls" width="100%" height="800px" runat="server" id="iframe1"></iframe> </form> <html> <body> <iframe id="officeContent" src="" width=0 height=0 frameborder=0></iframe> </body> </html> $('#officeContent').attr("src","[请求路径]"); 方法二 文档另存为html页面显示 带标签如: ${name} 的word 另存为 html,修改为jsp 可以通过 EL表达式获得返回数据 嵌入iframe <iframe src="${ctx}/Test.html" frameBorder=0 scrolling=no width="100%"></iframe> 注意:标签串行,是因为标签文字格式不一致。(可以在在txt文档编辑器里写好标签复制到模板中) 方法三 java生成html显示 来源: oschina 链接: https://my.oschina.net/u/2425659/blog/4873811

企业分布式微服务云架构技术分享 Spring Cloud+Spring Boot+Mybatis

北战南征 提交于 2021-01-01 03:07:09
1.介绍 Commonservice-system是一个大型分布式、微服务、面向企业的JavaEE体系快速研发平台,基于模块化、服务化、原子化、热插拔的设计思想,使用成熟领先的无商业限制的主流开源技术构建。采用服务化的组件开发模式,可实现复杂的业务功能。提供驱动式开发模式,整合内置的代码生成器,将JavaEE开发效率提高5倍以上,减少50%的代码开发量,解决80%的重复工作,让开发者更关注业务逻辑。使用Maven进行项目的构建管理,采用Jenkins进行持续集成,主要定位于大型分布式企业系统或大型分布式互联网产品的架构。 2.使用技术 SOA服务框架:SpringCloud 、SpringBoot、RestFul等 分布式缓存:Redis 模块化管理:Maven 数据库连接池:Alibaba Druid 核心框架:Spring framework、SpringBoot 持久层框架:MyBatis 安全框架:Apache Shiro 服务端验证:Hibernate Validator 任务调度:quartz 日志管理:SLF4J 1.7、Log4j 客户端验证:JQuery Validation 动态页签:easyuitab 前端框架:Bootstrap、Vue 3.设计思想 分布式、微服务、云架构 JAVA语言开发、跨平台、高性能、高可用、安全、服务化、模块化、组件化

Tomcat端口介绍

给你一囗甜甜゛ 提交于 2020-12-31 17:51:50
有一两个不知道怎么使用,暂时先记录下来。 1. 采用记事本打开Tomcat安装目录下的conf文件夹下的server.xml文件。 2. 在server.xml文件中找到以下代码: (1)<connector port="8080"protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443"/> 此连接器是负责建立HTTP连接。再通过浏览器访问Tomcat服务器的web应用时使用的就是这个端口,如果此端口被占用可将其修改一个未被占用的端口,例如 将上面代码中的port="8080"修改为port="8081",即可将Tomcat的默认端口设置为8081。在修改端口时,应避免与公用端口冲突。建议采用默认的8080端口,不要修改,除非8080端口被其他程序所占用。 (2) <Server port="8005" shutdown="SHUTDOWN"> 8005端口是用来关闭Tomcat服务的端口,如果此端口被占用,可在配置文件中将8005改成其他端口 (3)<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 此连接器负责和其他的HTTP服务器建立连接,再把Tomcat与其他的HTTP服务集成时需要使用此连接器。如果此端口被占用

200G的Java实战项目视频,全给你们了

被刻印的时光 ゝ 提交于 2020-12-31 11:33:58
前言 老哥找了很久很久,在浩瀚的互联网里找出了 27套 Java 实战视频 教程,总共有 200G 。老哥不易,能不能把老哥的 公众号 ,介绍给你的 同学 、 同事 、 朋友 。(老哥无耻的求一波宣传) 文章结尾有百度云下载链接 200G实战视频介绍 教程总截图 下面给大家介绍一些重点的项目,大家可以重点关注一下。 重点项目:众筹项目--尚筹网 部分视频截图,这个项目类似于水滴筹的那种,想学习支付方面的小伙伴可以看看 重点项目:谷粒商城 部分视频截图,这是一个商城的项目,使用了spring cloud等技术,前端用的vue,对于商城的基本概念spu、sku都有讲解,需要学习商城的小伙伴可以看下。 重点项目:微信小程序 目前微信小程序的开发也是非常火的,几乎每个app都做了自己的小程序,所以需要的小伙伴可以看看。 重点项目:SSM秒杀项目实战 重点项目:微服务天气预报项目实战 有需要的可以看看:游戏开发 重点项目:报名系统activiti工作流 「还有很多其他的项目,老哥就不一一介绍了,大家可以取网盘里看看。」 百度云下载链接 链接: 链接失效,后台回复:实战项目获取最新链接m/s/1T5Akb4OBfwjHxuMqBuu_tA 提取码: mtzn IT 老哥 一个在大厂做高级Java开发的程序猿 ❝ 关注微信公众号:IT 老哥 ❞ ❝ 回复:Java实战项目视频教程

SpringBoot图文教程6—SpringBoot中过滤器的使用

梦想与她 提交于 2020-12-31 09:50:50
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文系列教程技术大纲 鹿老师的Java笔记 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+案例 思维导图」「基础篇上」 SpringBoot图文教程2—日志的使用「logback」「log4j」 SpringBoot图文教程3—「‘初恋’情结」集成Jsp SpringBoot图文教程4—SpringBoot 实现文件上传下载 SpringBoot图文教程5—SpringBoot 中使用Aop 前言 过滤器是Javaweb非常基础的一个概念,属于Servlet的一部分。本文将会使用SpringBoot配置过滤器。在代码实现之前先通过一个简单的小案例解释一下什么是过滤器。 过滤器filter的概念:Servlet中提供的技术,可以过滤浏览器发出的请求,并且决定放行请求还是中断请求。 浏览器对服务器的请求,会先经过过滤器,再到达服务器 服务器对浏览器的响应,也会先经过过滤器,最后再响应给浏览器 基于过滤器的机制,我们可以在过滤器中对请求和响应做一些处理,可以在过滤器中决定是否放行,例如:校验请求中有没有敏感字符串,校验有没有Session等。 举个栗子: 过滤器就像疫情期间村口的路卡