Spring

Spring MVC介绍

不打扰是莪最后的温柔 提交于 2021-02-18 06:19:59
我们知道MVC是一种经典的模式,把视图、控制器以及数据分开,解耦了各模块之间的关系。 Spring Web MVC是基于 Java 实现的Web MVC 设计模式,是一个请求驱动类型的轻量级Web框架,也就是借助MVC设计模式的思想,将web层进行各个职责模块解耦。基于请求驱动,指的是使用请求-响应模型。框架的目的就是封装接口,简化开发,Spring Web MVC也是要简化日常Web开发。 在 Spring MVC中,前端控制器是DispatcherServlet;应用控制器包括处理器映射器(Handler Mapping)进行处理器管理,以及视图解析器(View Resolver)进行视图管理;页面控制器/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类)。 请求具体执行步骤如下: 1、 发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理,并把请求委托给该控制器; 2、 页面控制器接收到请求后,进行功能处理,绑定请求参数到命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名); 3、 前端控制器收回控制权,然后根据返回的逻辑视图名

spring mvc统一异常处理(@ControllerAdvice + @ExceptionHandler)

两盒软妹~` 提交于 2021-02-18 05:00:50
spring mvc统一异常处理(@ControllerAdvice + @ExceptionHandler) 参考文章: (1)spring mvc统一异常处理(@ControllerAdvice + @ExceptionHandler) (2)https://www.cnblogs.com/chihirotan/p/5990742.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4437974/blog/4953499

SpringBoot @RequestBody 报错 ('application/x-www-form-urlencoded;charset=UTF-8' not supported)

こ雲淡風輕ζ 提交于 2021-02-18 01:54:52
第一种:转 https://blog.csdn.net/chenfei2341/article/details/83652586 在Spring boot 中使用 @RequestBody 会报错,提示错误 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported ,代码如下: @RequestMapping(value = "/act/service/model/{modelId}/save", method = RequestMethod.POST) public void saveModel(@PathVariable String modelId, @RequestBody MultiValueMap<String, String> values) { // 具体代码 } 这个在传统 spring MVC 中是有效的,但是在 Spring boot 中会报错。 传统是 Spring MVC 有效,是因为有 <mvc:annotation-driven> 注解,查资料,<mvc:annotation-driven> 注解配置了如下的内容 spring 3.1 版本: <!-- 注解请求映射 --> <bean class ="org.springframework.web

新年Aliyun面经分享:基础+项目+源码+高阶

≡放荡痞女 提交于 2021-02-18 01:12:36
眼看着春招就来了!所以就让我想起去年秋招之路,现在跟大家分享一下我的面试路程,希望也能帮助大大家!原本秋招差不多顺利结束了,几乎阿里、百度、美团、字节、滴滴等等的大厂我都有疯狂投岗面试。虽然结果是比较圆满的,不过Aliyun倒是给我留下了深刻的印象。原因?请往下看... Aliyun一面:MySQL+Redis+JUC+Kafka+项目 Aliyun二面:项目+Java+数据库+网络+高并发+基础 Aliyun三面:项目+源码 Aliyun四面:基础+项目+缓存+锁 问的是还挺多的,个人觉得也挺广泛的(毕竟面试造火箭,工作拧螺丝),还有一些没记住(脑容量有限~哈哈哈~)。以上只是大块方向,我们一起来看看具体的问题如何吧... 【文末有相关问题的解析】 Aliyun一面:MySQL+Redis+JUC+Kafka+项目 1. MySQL (1)MySQL数据量太大怎么办,如何分库分表 (2)binlog,读写分离,主从复制 (3)MySQL里的锁了解吗 2. Redis (1)主从复制 (2)分布式锁 (3)哈希槽,一致性哈希 3. JUC (1)锁 4. Kafka (1)高性能的原因 Aliyun二面:项目+Java+数据库+网络+高并发 1. 项目 (1)为什么选Flume (2)为什么选Kafka (3)数据哪来的 (4)如何给出推荐算法 2. JAVA (1

记录Spring Cloud应用在阿里云架构部署

ぃ、小莉子 提交于 2021-02-18 01:03:36
常用的Spring Cloud体系架构 系统部署采用阿里云平台,采用的技术架构为SpringCloud. 采用在线阿里云架构制图工具: Freedgo Design 地址: https://www.freedgo.com, 具体架构如下: 整体架构 主要居于Spring Cloud的分布式微服务架构。主要功能包括: 服务注册发现中心(Eureka server) 通过服务发现可以抽象出部署服务的物理位置如IP,服务调用通过了逻辑名称而不是实际的物理位置,同时服务发现也处理了注册和注销。 服务配置中心(config server) 通过集中式的服务来处理应用程序配置数据。做到无论启动多少个微服务实例,这些实例始终使用相同的配置,同时服务的配置可以和微服务系统分离 服务网关(ZUUL) 通过ZUUL网关,可以强制执行一些功能如内容过滤,路由转发,过滤器等等 Spring Sleuth & ZIPKIN(分布式服务跟踪) 通过Sleuth 相关ID进行全链路跟踪,可以分析服务调用的性能 事件驱动及异步消息 用于处理异步事件如短消息推送,邮件发送等。 用户认证中心(auth2) ZUUL网关 ZUUL网关主要的功能 路由及过滤器设置 通常在ZUUL网关设置过滤器包括前置过滤器、后置过滤器、路由过滤器,可以自定义一些逻辑,在大多数情况下,这种自定义逻辑用于强制执行一组一致的应用程序策略

答好友困惑:Java零基础如何入门,不知道怎么学,迷茫ING

匆匆过客 提交于 2021-02-18 00:56:54
作者:程序员小跃 几个星期之前,我在知乎上看到一个提问,说是: 对于完全没有经验零基础自身的数学底子也很弱学习Java应该怎么学习呢 ?想着类似的问题我也有过回答,并且反馈还是蛮好的,就参考之前的思路回答了一遍,可惜没在公众号里和大家分享,后续再整理一份好好分享下。( 该问答地址见原文 ) 提出问题的是一位高中生,就顺藤摸瓜加了我好友,让我给指点指点。跃哥最近飘了,各种给人指点,也不知道是对是错,但是我还是从自身的角度来分析问题,毕竟我也工作多年,给初学者一些信心是我该做的;给初学者一些指导,是我力所能及的;给初学者一些劝退,也是我要做的,毕竟很多人可能最后发现自己并不适合写程序。 期间这位老弟和我聊了很多,我都零零散散给了解答。直到前几天,他抛给我很多困惑,都是在初学的时候会面临到的,所以我就抽时间做了一次详细的解答,主要涉及到 Java从入门到进阶需要经历哪些 、 如何学习Java入门 、 还没开始实践就有一堆烦恼,该怎么办? 本文将以问答的方式,给出一些简单的见解,因为Java内容挺多的,可能会有遗漏,我已经让群里的小伙伴们做过一次筛选,读者朋友们看到了,也可以给我更多的补充噢。 知友:哥,我前两天也想了一些编程的问题向您请教请教吧,希望能得到你的帮助 第一个呢就是Java学习路线是什么,Java各个阶段需要学的知识点有什么,课程大纲

think in java 泛型

假装没事ソ 提交于 2021-02-17 23:00:22
曾几何时,我们对java的泛型充满了好奇,但是感觉用起来有很爽,但又会在spring类型泛型的地方,遇到问题。 我第一次的遇到泛型是在使用别人的BaseDao的时候,这是一个java封装hibernate框架的操作数据库的工具。但我使用 的时候,只需要简单指定我需要数据库操作的类即可,非常方便,但是当我使用spring,想要对泛型的BaseDao<B>使用 @Autowired,根据类型注入的时候,spring却给我找到了一个错,我觉得很奇怪,在我看来BaseDao就是一个新的类型, 最起码他跟原来的BaseDao<A> 是有区别的,为什么spring不能识别出来。 在一脸蒙蔽的状态下,一直保留到现在,知道看了think in java的泛型,这一章,才了解了泛型的基础内容,学习三原则 what,why,how 1什么是泛型? 泛型是参数化类型。将类型作为参数,从而可以多种类型复用, 2.为什么出现泛型?   最初希望能够写出通用性更高的方法,我们使用object,因为   java的单根继承,所有东西都是object的子类,所有最初我们使用object来保存对象,达到了通用的目的,但是却有在编译时期,我们   可能将多种类型放进去,但是在拿出来类型转化时,转成了另外一种类型,这样只有在运行时,才能发现问题所在。   然后有想到了类,针对某一个类A,如果要使用当前的容器

nacos注册中心和配置中心

无人久伴 提交于 2021-02-17 21:49:06
pom: <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery 注册中心依赖--> < dependency > < groupId > com.alibaba.cloud </ groupId > < artifactId > spring-cloud-starter-alibaba-nacos-discovery </ artifactId > < version > 2.2.1.RELEASE </ version > </ dependency > <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery 配置中心依赖--> < dependency > < groupId > com.alibaba.cloud </ groupId > < artifactId > spring-cloud-starter-alibaba-nacos-config </ artifactId > < version > 2.2.1.RELEASE </ version > </

BindException thrown instead of MethodArgumentNotValidException in REST application

老子叫甜甜 提交于 2021-02-17 21:45:36
问题 I have a simple Spring Rest Controller with some validation. My understanding is that validation failures would throw a MethodArgumentNotValidException. However, my code throws a BindException instead. In debug messages, I also see the app returning a null ModelAndView. Why would a Rest Controller throw BindException or return a null ModelAndView? Note: I am testing my web application using curl and making an HTTP POST curl -X POST http://localhost:8080/tasks I am intentionally omitting the

Spring JPA REST sort by nested property

淺唱寂寞╮ 提交于 2021-02-17 21:45:01
问题 I have entity Market and Event . Market entity has a column: @ManyToOne(fetch = FetchType.EAGER) private Event event; Next I have a repository: public interface MarketRepository extends PagingAndSortingRepository<Market, Long> { } and a projection: @Projection(name="expanded", types={Market.class}) public interface ExpandedMarket { public String getName(); public Event getEvent(); } using REST query /api/markets?projection=expanded&sort=name,asc I get successfully the list of markets with