springmvc配置

说说SpringMVC、SpringBoot和SpringCloud三者之间的联系和区别

北慕城南 提交于 2020-01-01 09:24:09
这个问题是我在参加一次面试晚会活动上被问到的一个问题,看标题显然很简单就能够回答出来,但是仔细一琢磨,平时蒙头苦干的我们可能缺少关注和积累,好像并不能用较专业的术语和逻辑很顺畅的表达出来,于是我简要的翻了翻资料,然后整理出了这篇文章。 Spring框架是一个大集合,也像一个大家族【可以到spring.io官网了解】。但家庭成员的基础都是基于Spring的IoC和AOP特性, IoC提供了依赖注入(DI)的容器,可谓是核心,AOP则提供了面向切面的编程方案,在前两者的基础上,继续演化升级实现了其他延伸产品的高级功能。 内容提要 Spring MVC是基于Servlet实现的一个前端MVC框架,主要解决WEB项目开发的问题。因为在业务开发的过程中发现Spring的配置非常复杂,各种XML、Config等处理起来比较繁琐。于是为了简化开发者的使用,从而创造性地推出了Spring boot,约定优于配置,简化了spring的配置流程。在业务日益繁杂和庞大的进程中,很多企业已经疲于应付庞大的业务模块和错综复杂的数据交互,于是微服务的理念开始提了出来,Spring根据这个理念打造出来微服务全家桶Spring Cloud,这其中有非常多高效的组件活跃在微服务生态中,微服务是基于Spring Boot进行开发的. 简单通俗地来理解就是:Spring最初利用“工厂模式”(DI)和“代理模式”(AOP

2019年springmvc面试高频题(java)

南笙酒味 提交于 2019-12-31 10:06:04
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来整合 ,它和Struts2一样都属于表现层的框架。在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、SpringMVC的流程? 1、用户发送请求至前端控制器DispatcherServlet; 2、DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle; 3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet; 4

Spring和SpringMVC的常用注解

有些话、适合烂在心里 提交于 2019-12-31 08:10:08
Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包)。 <context:component-scan base-package="cn.test"/> 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller 在展现层使用,控制器的声明(C) 2.注入bean的注解 @Autowired:由Spring提供 @Inject:由JSR-330提供 @Resource:由JSR-250提供 都可以注解在set方法和属性上,推荐注解在属性上。 3.java配置类相关注解 @Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上) @Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上) @Configuration 声明当前类为配置类,其中内部组合了@Component注解,表明这个类是一个bean(类上) @ComponentScan 用于对Component进行扫描,相当于xml中的(类上) @WishlyConfiguration 为@Configuration与@ComponentScan的组合注解

Hello-SpringMvc

梦想的初衷 提交于 2019-12-30 23:57:20
什么是SpringMVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。就是将业务逻辑、数据、显示分离的方法来组织代码 MVC主要作用是 降低了视图与业务逻辑间的双向偶合 。MVC不是一种设计模式, MVC是一种架构模式 。当然不同的MVC存在差异。 Model(模型) :数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。 View(视图) :负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。 Controller(控制器) :接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作。 最典型的MVC就是 JSP + servlet + javabean 的模式。 Model1 在web早期的开发中,通常采用的都是Model1。 Model1中,主要分为两层,视图层和模型层。 Model1优点:架构简单,比较适合小型项目开发; Model1缺点:JSP职责不单一,职责过重,不便于维护 Model2

SpringMVC注解校验

你说的曾经没有我的故事 提交于 2019-12-29 23:38:43
spring注解式参数校验 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jinzhencs/article/details/51682830 一般入参我们都会转为vo对象。那么直接在对象的属性上注解即可。 其实spring用的是hibernate的validator. 步骤 1.配置spring.xml <mvc:annotation-driven /> 2.配置自己的validate类。 <bean id="validateArgsAOP" class="com.my.validate.aop.ValidateArgsAOP"/> <aop:config> <aop:aspect id="argAOP" ref="validateArgsAOP"> <aop:pointcut id="target" expression="execution(* com.wlqq.apigateway..*Controller.*(..))"/> <aop:around method="doAround" pointcut-ref="target"/> </aop:aspect> </aop:config> 3.controller的bean加上@Valid @RequestMapping(value=”/template”, method

SSM —— Spring + SpringMVC +Mybatis 整合JAR 和 XML 配置文件

孤者浪人 提交于 2019-12-29 14:52:33
1. 导入jar包 ## 数据库 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> <scope>runtime</scope> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> ## Mybatis <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> ## Spring MVC <dependency> <groupId>log4j</groupId> <artifactId

SpringMVC文件上传与下载

别来无恙 提交于 2019-12-29 08:16:07
一、关键步骤 ①引入核心JAR文件 SpringMVC实现文件上传,需要再添加两个jar包。一个是文件上传的jar包,一个是其所依赖的IO包。这两个jar包,均在Spring支持库的org.apache.commons中。 ②书写控制器方法 applicationContext.xml: 注:必须创建MultipartFile实例。要不出现500错误 index.jsp页面:需指定 enctype="multipart/form-data <body> <form action="${pageContext.request.contextPath }/first.do" method="post" enctype="multipart/form-data"> <h2>文件上传</h2> 文件:<input type="file" name="uploadFile"/><br/><br/> <input type="submit" value="上传"/> </form> </body> 实现效果:   二、没有选择要上传的文件&&限制文件上传类型 如果没有选择要上传的文件,可以通过如下判断代码回到错误页,并配置异常类 <!-- 配置异常类 报错 --> <bean class="org.springframework.web.servlet.handler

SpringMVC源码(五)- doDispatch - getHandle的准备阶段(@RequestMapping解析注册)

妖精的绣舞 提交于 2019-12-28 02:26:36
目录 一、doDispatch的getHandler 1、RequestMappingHandlerMapping结构 2、setApplicationContext回调函数 3、afterPropertiesSet回调函数 1)、获取可能的类 2)、解析和注册 3)、递归查询所有的方法 4)、将RequestMapping注解修饰的方法以RequestMappingInfo返回 5)、注册调用方法 二、doDispatch的getHandlerAdapter 1、RequestMappingHandlerAdapter 2、HandlerFunctionAdapter 3、HttpRequestHandlerAdapter 4、SimpleControllerHandlerAdapter 5、SimpleServletHandlerAdapter 三、总结 一、doDispatch的getHandler SpringMVC中比较重要的就是doDispatch,而其中第一个比较重要的就是根据HttpServletRequest(当前为RequestFacade类型)获取HandlerExecutionChain(调用的Controller和需要调用的HandlerInterceptor链)。 @Nullable protected HandlerExecutionChain

SpringMVC学习(一)——对于springMVC的整体认识

二次信任 提交于 2019-12-27 18:49:38
一、首先什么是SpringMVC? SpringMVC是一个基于MVC实现的web框架,用于替代传统的servlet。MVC全名是Model View Controller,是模型(model)——视图(view)——控制器(controller)的缩写。 二、同类的技术有哪些? SpringMVC同类的技术要数Struts2 三、对比同类的优缺点是哪些? 对比Struts2的优势很明显: 1、拦截机制的不同,Struts2是类级别的拦截,SpringMVC是方法级别的拦截 2、底层架构的不同,Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC则是采用Servlet(DispatcherServlet)实现。 3、配置方面不同,SpringMVC和Spring是无缝结合的,相对于Struts2省却了很多配置,提高了开发效率符合当前敏捷开发思路。 四、SpringMVC的组成部分? 1、前端控制器(DispatcherServlet)——框架已提供不需要开发 中央处理器,负责请求的转发,相当于一个请求转发器 2、处理器映射器(HandlerMapping)——框架已提供不需要开发 接收到前端控制器发送来的url后,对url进行匹配,返回给前端控制器一个处理器执行链(HandlerExecuteChain) 3

“Spring + SpringMVC”优质套餐---深入浅出

孤街醉人 提交于 2019-12-27 18:05:47
走进Spring 和 走进SpringMVC系列总结 目前完成了Mybatis 全家桶系列套餐 Mybatis专题—“系列全家桶” 这篇对Spring和SpringMVC专题进行总结整合 点赞再看,你的支持便是我最大的动力 前言 Spring 为何物? Spring 是一个开源框架. Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. Spring 是一个 IOC(DI) 和 AOP 容器框架. 为什么要学习Spring 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API 依赖注入(DI — dependency injection) 控制反转(IOC) 面向切面编程(AOP — aspect oriented programming) 容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期 框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象 一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC