Java EE

Spring MVC基本原理

时间秒杀一切 提交于 2021-01-18 06:31:57
摘要: Spring MVC工作流程图 spring MVC工作流程图 图一 图二 开发工具 1.Eclipse IDE:采用Maven项目管理,模块化。 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。生成后的代码如果不需要注意美观程度,生成后即可用。 技术选型(只列了一部分技术) 1、后端 服务框架:Dubbo、zookeeper、Rest服务 缓存: Redis 、ehcache 消息中间件:ActiveMQ 负载均衡:Nginx 分布式文件:FastDFS 数据库 连接池:Alibaba Druid 1.0 核心框架:Spring framework 安全框架:Apache Shiro 1.2 视图框架:Spring MVC 4.0 服务端验证: hibernate Validator 5.1 布局框架:SiteMesh 2.4 工作流引擎:Activiti 5.15 任务调度:quartz 1.8.5 持久层框架:MyBatis 3.2 日志管理:SLF4J 1.7、Log4j 工具类:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI 2、前端 js 框架: jQuery 1.9。 CSS框架: Bootstrap 4 metronic 客户端验证:

SpringMVC基本原理

雨燕双飞 提交于 2021-01-18 06:31:46
统一的入口 使用SpringMVC的过程中有种明显感觉就是一个请求不止一次的经过DispatcherServlet,所以有这样一个疑问:DispatcherServlet这种中心式的控制器有什么好处和什么劣势。 看了一些博客之后,总结出一下几点: 为Web应用程序提供了一个中心入口点。该集中入口点将系统组件的共同特征进行重新组合。我们可以在那里找到安全资源,语言切换,会话管理,缓存或输入过滤的处理程序。这样做的一个很大的好处是:这个共同的入口点有助于避免代码重复。 有助于对以下询问做出最佳响应: 如何集中授权和认证? 如何处理正确的视图渲染? 如何使用URL重写映射将请求发送到适当的控制器? 个人感受较深的是可以对一个请求做统一的附加处理,比如上文说的集中授权和认证。 SpringMVC一条请求的执行过程 DispathcerServlet 上图言简意赅的总结了一条请求过程,对于这个类的分析就可以从上图开始。首先DispatcherServlet名字中带一个Servlet,看一下它的继承关系。 它确实继承了Servlet接口。 还记得Servlet最基本的知识就是Servlet的三大方法:init(),service(),destory(), init()和destory()在Servlet生命周期里是初始化和销毁的作用,service()才是真正干活的作用

spring boot的作用与基本原理

做~自己de王妃 提交于 2021-01-18 05:31:25
springBootApplication 是个集合配置,加上这个注解就等于 enableAutoConfig, 1. 自动配置 @enableAutoConfig 即为自动配置。 无需web.xml,spring-mvc.xml,application.xml的配置,spring boot在项目启动时,按照默认配置。 @Bean 2. 内嵌tomcat 3. 来源: oschina 链接: https://my.oschina.net/zhaolin/blog/4907351

保姆级 tomcat 快速入门

删除回忆录丶 提交于 2021-01-17 14:50:14
背景介绍 Apache Tomcat 是Java Servlet、JavaServer Pages (JSP)、Java表达式语言和Java的WebSocket技术的一个开源实现 ,通常我们将Tomcat称为Web容器或者Servlet容器 。 tomcat各版本和相应规范的映射关系: 下载地址 https://tomcat.apache.org/download-90.cgi 下载到本地并解压: 进入主目录: tomcat目录介绍 bin 启动,关闭和其他脚本。这些 .sh文件(对于Unix系统)是这些.bat文件的功能副本(对于Windows系统)。由于Win32命令行缺少某些功能,因此此处包含一些其他文件。 比如说:windows下启动tomcat用的是startup.bat,另外Linux环境中使用的是startup.sh。对应还有相应的shutdown关闭脚本。 conf tomcat的配置文件和相关的DTD。这里最重要的文件是server.xml。它是容器的主要配置文件。 catalina.policy :tomcat:安全策略文件,控制JVM相关权限,具体可以参考java.security.Permission。 catalina.properties :tomcat Catalina 行为控制配置文件,比如:Common ClassLoader。 logging

数据分页(物理分页和逻辑分页)

主宰稳场 提交于 2021-01-17 06:08:01
# 数据分页 ## 必须的的参数 #### 总数据条数(count) + 来源:从数据库中查询获得 #### 每页展示多少条数据(pageSize) + 来源:前端获取 #### 当前所在的页码(currentPage) + 来源:前端获取 #### 总页数(countPage) + 来源:计算得来 > 总页数 = 总数据条数 / 每页展示条数 > > countPage = count / pageSize #### 数据本身 + 来源:数据库查询 ## 物理分页 #### 什么是物理分页 ​ 所谓的物理分页其实就是直接通过数据库来实现返回一部分数据。每次只从数据库中查询一页的数据。与之相对应的还有逻辑分页。 #### Mysql中的实现语句 ```sql SELECT * FROM `shop` LIMIT (currentPage-1)*pageSize, pageSize; ``` #### Java程序 ```java private void doPhysicalPaganation(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取页面传递过来的参数 String sCurrentPage = req.getParameter(

高级开发必须理解的Java中SPI机制

霸气de小男生 提交于 2021-01-17 02:57:50
本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参考。 1 SPI是什么 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 整体机制图如下: Java SPI 实际上是“ 基于接口的编程+策略模式+配置文件 ”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 Java SPI就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以SPI的核心思想就是 解耦 。 2 使用场景 概括地说,适用于: 调用者根据实际使用需要,启用、扩展、或者替换框架的实现策略 比较常见的例子: 数据库驱动加载接口实现类的加载 JDBC加载不同类型数据库的驱动 日志门面接口实现类加载 SLF4J加载不同提供商的日志实现类 Spring Spring中大量使用了SPI,比如:对servlet3

SSM商城项目(四)

我的未来我决定 提交于 2021-01-16 04:11:14
1. 学习 计划 1、图片服务器 2、图片服务器安装 3、图片服务器的使用 4、图片上传功能 5、富文本编辑器的使用方法 6、商品添加功能实现 2. 图片服务器 1、存储空间可扩展。 2、提供一个统一的访问方式。 使用 FastDFS ,分布式文件系统。存储空间可以横向扩展,可以实现服务器的高可用。支持每个节点有备份机。 2.1. 什么是 FastDFS ? FastDFS 是用 c 语言编写的一款开源的分布式文件系统。 FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标 ,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 2.2. FastDFS 架构 FastDFS 架构包括 Tracker server 和 Storage server 。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。 Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。 Storage server 作用是文件存储

SSM商城项目(二)

折月煮酒 提交于 2021-01-16 04:10:46
1. 学习 计划 1、将工程改造为基于SOA 架构 2、商品列表查询功能实现。 2. 将工程改造为 SOA 架构 2.1. 分析 由于 商城是基于 soa 的架构,表现层和服务层是不同的工程。所以要实现商品列表查询需要两个系统之间进行通信。 如何实现远程通信? 1 、 Webservice :效率不高基于 soap 协议。项目中不推荐使用。 2 、使用 restful 形式的服务: http+json 。很多项目中应用。如果服务太多,服务之间调用关系混乱,需要治疗服务。 3 、 使用 dubbo 。使用 rpc 协议进行远程调用,直接使用 socket 通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数 。 2.2. dubbo 2.2.1. 什么是 dubbo 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架 (ORM) 是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 此时,用于加速前端页面开发的 Web 框架 (MVC) 是关键。 分布式服务架构

SSM商城项目(一)

会有一股神秘感。 提交于 2021-01-16 02:50:14
1. 学习计划 1、电商行业的背景。 2、宜立方商城介绍 3、宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 4、 工程搭建 - 后台工程 a) 使用 maven 搭建工程 b) 使用 maven 的 tomcat 插件启动工程 5、SSM 框架整合 6、svn的使用。 2. 电商行业背景介绍 近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。 中国电子商务研究中心数据显示,截止到 2012 年底,中国电子商务市场交易规模达 7.85 万亿人民币,同比增长 30.83% 。其中, B2B 电子商务交易额 达 6.25 万亿,同比增长 27% 。而 2011 年全年,中国电子商务市场交易额达 6 万亿人民币,同比增长 33% ,占 GDP 比重上升到 13% ; 2012 年,电 子商务占 GDP 的比重已经高达 15% 。预计 2013 年我国电子商务规模将突破十万亿大关。 009-2015 年中国电子商务市场交易规模(万亿元) 2.1. 结论: 1、电商行业很挣钱,找互联网相关的工作。 2、电商行业技术要求很高、高可用、海量数据的存储。 2.2.