SpringMVC入门
一、SpringMVC简介1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。 V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据 C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器 MVC的工作流程:用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器 2、什么是SpringMVCSpringMVC是Spring的一个后续产品,是Spring的一个子项目 SpringMVC 是 Spring 为表述层开...
Spring:数据校验
10、数据校验:Validation 10.1、Spring Validation概述在开发中,我们经常遇到参数校验的需求,比如用户注册的时候,要校验用户名不能为空、用户名长度不超过20个字符、手机号是合法的手机号格式等等。如果使用普通方式,我们会把校验的代码和真正的业务处理逻辑耦合在一起,而且如果未来要新增一种校验逻辑也需要在修改多个地方。而spring validation允许通过注解的方式来定义对象校验规则,把校验和业务逻辑分离开,让代码编写更加方便。Spring Validation其实就是对Hibernate Validator进一步的封装,方便在Spring中使用。 在Spring中有多种校验的方式 第一种是通过实现org.springframework.validation.Validator接口,然后在代码中调用这个类 第二种是按照Bean Validation方式来进行校验,即通过注解的方式。 第三种是基于方法实现校验 除此之外,还可以实现自定义校验 10.2、实验一:通过Validator接口实现第一步 创建子模块 spring6-validator 第...
Spring:事务
7、事务7.1、JdbcTemplate7.1.1、简介 Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作 7.1.2、准备工作①搭建子模块 搭建子模块:spring-jdbc-tx ②加入依赖 1234567891011121314151617181920<dependencies> <!--spring jdbc Spring 持久化层支持jar包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>6.0.2</version> </dependency> <!-- MySQL驱动 --> <dependency> <groupId>my...
Spring:面向切面编程
5、面向切面:AOP5.1、场景模拟搭建子模块:spring6-aop 5.1.1、声明接口声明计算器接口Calculator,包含加减乘除的抽象方法 1234567891011public interface Calculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); } 5.1.2、创建实现类 123456789101112131415161718192021222324252627282930313233343536373839404142public class CalculatorImpl implements Calculator { @Override public int add(int i, int j) { int result = i + j; ...
Spring:基于注解的bean管理
3.3、基于注解管理Bean从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变原有代码和逻辑的情况下,在源代码中嵌入补充信息。 Spring 从 2.5 版本开始提供了对注解技术的全面支持,我们可以使用注解来实现自动装配,简化 Spring 的 XML 配置。 Spring 通过注解实现自动装配的步骤如下: 引入依赖、开启组件扫描、使用注解定义 Bean、依赖注入 3.3.1、搭建子模块spring6-ioc-annotation①搭建模块 搭建方式如:spring6-ioc-xml ②引入配置文件 引入spring-ioc-xml模块日志log4j2.xml ③添加依赖 123456789101112131415161718192021222324252627<dependencies> <!--spring context依赖--> <!--当你引入Spring Context依赖之后,表示将Spri...
Spring:基于xml的bean管理
3、容器:IoCIoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。 IoC 容器是 Spring 框架中最重要的核心组件之一,它贯穿了 Spring 从诞生到成长的整个过程。 3.1、IoC容器3.1.1、控制反转(IoC) 控制反转是一种思想。 控制反转是为了降低程序耦合度,提高程序扩展力。 控制反转,反转的是什么? 将对象的创建权利交出去,交给第三方容器负责。 将对象和对象之间关系的维护权交出去,交给第三方容器负责。 控制反转这种思想如何实现呢? DI(Dependency Injection):依赖注入 3.1.2、依赖注入DI(Dependency Injection):依...
Spring入门
Spring6 1、概述1.1、Spring是什么?Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。 Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然成为了 Java EE 代名词,成为了构建 Java EE 应用的事实标准。 自 2004 年 4 月,Spring 1.0 版本正式发布以来,Spring 已经步入到了第 6 个大版本,也就是 Spring 6。本课程采用Spring当前最新发布的正式版本6.0.2。 1.2、Spring 的狭义和广义在不同的语境中,Spring 所代表的含义是不同的。下面我们就分别从“广义”和“狭义”两个角度,对 Spring 进...
Nginx-动静分离与高可用
Nginx实现服务器端集群搭建Nginx与Tomcat部署前面课程已经将Nginx的大部分内容进行了讲解,我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在实际项目中除了静态资源还有就是后台业务代码模块,一般后台业务都会被部署在Tomcat,weblogic或者是websphere等web服务器上。那么如何使用Nginx接收用户的请求并把请求转发到后台web服务器? 步骤分析: 121.准备Tomcat环境,并在Tomcat上部署一个web项目2.准备Nginx环境,使用Nginx接收请求,并把请求分发到Tomat上 环境准备(Tomcat)浏览器访问: 1http://192.168.200.146:8080/demo/index.html 获取动态资源的链接地址: 1http://192.168.200.146:8080/demo/getAddress 本次课程将采用Tomcat作为后台web服务器 (1)在Centos上准备一个Tomcat (2)准备一个web项目,将其打包为war (3)启动tomcat进行访问测试。 12静态资...
Nginx-负载均衡
Nginx负载均衡负载均衡概述早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。那么如何将不同用户的请求流量分发到不同的服务器上呢? 负载均衡的原理系统的扩展可以分为纵向扩展和横向扩展。 纵向扩展是从单机的角度出发,通过增加系统的硬件处理能力来提升服务器的处理能力 横向扩展是通过添加机器来满足大型网站服务的处理能力。 这里面涉及到两个重要的角色分别是”应用集群”和”负载均衡器”。 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理并返回响应的数据。 负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。 负载均衡的作用1、解决服务器的高并发压力,提高应用程序的处理性能。 2、提供故障转移,实现高可用。 3、通过添加或减少服务器数量,增强网站的可扩展性。 4、在负载均衡器上进行过滤,可以提高系统的安全性。 负载均衡策略介绍完...
Nginx-反向代理
Nginx反向代理Nginx反向代理概述关于正向代理和反向代理,我们在前面的章节已经通过一张图给大家详细的介绍过了,简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。 Nginx即可以实现正向代理,也可以实现反向代理。 我们先来通过一个小案例演示下Nginx正向代理的简单应用。 先提需求: (1)服务端的设置: 123456789101112http { log_format main 'client send request=>clientIp=$remote_addr serverIp=>$host'; server{ listen 80; server_name localhost; access_log logs/access.log main; location { root html; index index.html index.htm; } }} (2)使用客户端访问服务端,打开日志查看结果 (3)代理服务...