本文以纯后端的角度,去研究Spring Controller在各种情况的行为,及各种属性的作用. 实验准备 利用https://start.spring.io/快速生成一个开箱即用的小巧spring boot项目,无需进行复杂配置,非常适合进行研究实验使用. 若以下例子未说明,结果为下述代码所示. @Controller @RequestMapping(value = "/terra") public class TestController { // 放置实验的Controller…
一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作.方法). 1.1.实现接口Controller定义控制器 Controller是一个接口,处在包org.springframework.web.servlet.mvc下,接口中只有一个未实现的方法,具体的接口如下所示: package org.springframework.web.servlet.…
Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解 一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型. 在Spring MVC中一个控制器可以包含多个Action(动作.方法). 二.@RequestMapping详解 @RequestMapping注释用于映射url到控制器类或一个特定的处理程序方法.可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路…
SpringMVC RequestMapping 详解 RequestMapping这个注解在SpringMVC扮演着非常重要的角色,可以说是随处可见.它的知识点很简单.今天我们就一起学习SpringMVC的RequestMapping这个注解.文章主要分为两个部分:RequestMapping 基础用法和RequestMapping 提升用法. 准备工作 pom.xml 这里是需要的jar包和相关的配置.这里设置了maven-compiler-plugin的java版本为1.7,避免打包出错和…
Spring Boot 之使用 Json 详解 简介 Spring Boot 支持的 Json 库 Spring Web 中的序列化.反序列化 指定类的 Json 序列化.反序列化 @JsonTest Spring Boot 中的 json 配置 Jackson 配置 GSON 配置 Spring Boot 中使用 Fastjson 示例源码 引申和引用 简介 Spring Boot 支持的 Json 库 Spring Boot 支持三种 Json 库: Gson Jackson JSON-B…
Spring boot注解(annotation)含义详解 @Service用于标注业务层组件@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数据访问组件,即DAO组件@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注.@Autowired后不需要getter()和setter()方法,Spring也会自动注入. @ResponseBody 用该注解修饰的函数,会将结果直接填充到HTTP的响应体中,一般用于构建…
百度的面试官问:Web容器,Servlet容器,SpringMVC容器的区别: 我还写了个文章,说明web容器与servlet容器的联系,参考:servlet单实例多线程模式 这个文章有web容器与springMVC的联系: 客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet 具体看下面: 1.Spring MVC概述: Spri…
http://blog.csdn.net/noaman_wgs/article/details/53893948 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+SpringMVC项目详解 这两天在公司实习,师父让我先熟悉Intellij软件的使用和SpringMVC框架.话不多说,先利用这些搭建一个小环境吧. 1 创建MAVEN项目:File-NEW-MAVEN-create from..前打勾--选下面的org.apache..archetypes:maven-…
点击下方链接回顾往期 不要再说不会Spring了!Spring第一天,学会进大厂! Spring第二天,你必须知道容器注册组件的几种方式!学废它吊打面试官! 今天讲解Spring中Bean的生命周期.通过代码案例 + 源码的方式,用图文结合的方式来讲解Bean的生命周期.希望这一篇看过后,小伙伴后续面试中遇到该类问题,让面试官无话可说! 一 .Bean的生命周期 首先我们来了解下bean的生命周期: bean创建 --> 初始化 --> 销毁 bean的生命周期是由IOC容器进行管理.我们也可…
@RequestMapping详解 RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.这句话,太熟悉了.   一. RequestMapping路径详解                                          (1)首先springmvc.xml配置 <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframe…
Spring MVC概述: Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单.这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中. Spring MVC主要由DispatcherServlet.处理器映射.处理器(控制器).视图解析器.视图组成.他的两个核心是: 处理器映射:选择使用哪个控制器来…
1.spring Controller @RestController @RequestMapping(value = "/basic/task") public class TaskController { @Autowired private TaskServiceImpl taskService; @PostMapping(value = "/add") public ResponseEntity addTask(@RequestBody TaskEntity…
前言 南朝<述异记>中记载,晋王质上山砍柴,见二童子下棋,未看完,斧柄已烂,下山回村,闻同代人都去世了,自已还未变老.    因此发出“山中方一日,世上几千年” 的慨叹.原文寥寥几笔,读来却发人深省. 另有宋朝周敦颐在<暮春即事>中也有诗云:双双瓦雀行书案,点点杨花入砚池.闲坐小窗读周易,不知春去几多时. 上述古文或古诗中对于时间的论述最符合我现在的感受.已经整整十五日,对于Spring Serurity3的研究终于可以告一个段落了. 感觉这过往的十五日仿佛一瞬间而过,我沉浸在此中…
在企业级应用中,学习了如何进行SpringBoot应用的功能开发,以及如何写单元测试.集成测试等还是不够的.在实际的软件开发中还需要:应用程序的监控和管理.SpringBoot的Actuator模块实现了应用的监控与管理. Actuator简介 生产系统中,往往需要对系统实际运行的情况(例如cpu.io.disk.db.业务功能等指标)进行监控运维.在SpringBoot项目中Actuator模块提供了众多HTTP接口端点(Endpoint),来提供应用程序运行时的内部状态信息. Actuato…
上次的博文深入浅出Spring(二) IoC详解中,我为大家简单介绍了一下Spring框架核心内容中的IoC,接下来我们继续讲解另一个核心AOP(Aspect Oriented Programming),即面向切面编程. 1.OOP回顾 在介绍AOP之前先来回顾一下大家都比较熟悉的OOP(Object Oriented Programming).OOP主要是为了实现编程的重用性.灵活性和扩展性.它的几个特征分别是继承.封装.多态和抽象.OOP重点体现在编程架构,强调的是类之间的层次关系. 2.O…
Spring Boot的启动器Starter详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring-boot-starter-actuator 帮助监控和管理应用. 3)spring-boot-starter-amqp 通…
当jQuery 发送ajax请求需要传递多个参数时,如果参数过多,Controller接收参数时就需要定义多个参数,这样接口方法会比较长,也不方便.Spring可以传递对象参数,将你需要的所有查询条件定义成对象的属性,前台给对象赋值,后台Controller接收时只需要接收对象参数即可,这样代码就变得非常简洁.以下是示例代码: 1.对象参数QueryBean 就是普通的java类,定义你需要的属性,生产getter.setter方法即可.例如我查询时需要传递用户名称name.用户密码passwo…
Spring Boot(八):RabbitMQ详解 RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apache,当然了今天的主角还是讲RabbitMQ.消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的.在分布式的系统中,消…
想要获取context需要先熟悉spring是怎么在web容器中启动的,spring启动过程其实就是其IOC容器的启动过程,对于web程序,IOC容器启动过程即是建立上下文的过程 spring启动过程: 对于一个web应用,部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,为后面的spring IOC容器提供宿主环境: 在web.xml中会提供有contextLoaderListener;在web容器启动时,会触发容器初始化事件,此时conte…
Spring 入门 web.xml配置详解 https://www.cnblogs.com/cczz_11/p/4363314.html https://blog.csdn.net/hellolovelife/article/details/49079747 Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程 https://blog.csdn.net/yeohcooller/article/details/9316923 https://blog.cs…
上次的博文深入浅出Spring(二) IoC详解中,我为大家简单介绍了一下Spring框架核心内容中的IoC,接下来我们继续讲解另一个核心AOP(Aspect Oriented Programming),即面向切面编程. 1.OOP回顾 在介绍AOP之前先来回顾一下大家都比较熟悉的OOP(Object Oriented Programming).OOP主要是为了实现编程的重用性.灵活性和扩展性.它的几个特征分别是继承.封装.多态和抽象.OOP重点体现在编程架构,强调的是类之间的层次关系. 2.O…
Spring:笔记整理(1)——HelloWorld 导入JAR包: 核心Jar包 Jar包解释 Spring-core 这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类. 外部依赖Commons Logging, (Log4J) Spring-Beans 这个jar 文件是所有应用都要用到的,它包含访问配置文件.创建和管理bean 以及进行Inversion ofContr…
spring mvc 整理…
在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能. Spring Boot中的使用 在Spring Boot的源码中,比如涉及到Http编码的自动配置.数据源类型的自动配置等大量的使用到了@ConditionalOnProperty的注解. HttpEncodingAutoConfiguration类中部分源代码: @Configuration(proxyBeanMethods = false) @Enabl…
背景 在写这篇随笔之前,已经写了io流函数略解(java_File)(一),主要是总结了File的一些操作,以及一些源码介绍. 在Io实际应用中,实际上运用在如果会操作File,实际上很难写出一点能实际应用的code,因为操作文件嘛,更多的是操作流,也就是steam. 下面将简单总结一些流的概念,以及流的一些基本理论,同时也会贴出源码来略看. 实践 io之所以叫io,i的意思是input,o的意思是output,也就是一个输入一个输出,分别对应read与write. inputsteam inp…
使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring Boot命令行参数相关的功能及相关源码分析. 命令行参数使用 启动Spring Boot项目时,我们可以通过如下方式传递参数: java -jar xxx.jar --server.port=8081 默认情况下Spring Boot使用8080端口,通过上述参数将其修改为8081端口,而且通过命令…
3 Spring Security Oauth2研究 3.1 目标 本项目认证服务基于Spring Security Oauth2进行构建,并在其基础上作了一些扩展,采用JWT令牌机制,并自定 义了用户身份信息的内容. 本教程的主要目标是学习在项目中集成Spring Security Oauth2的方法和流程,通过 spring Security Oauth2的研究需要达到以下目标: 1.理解Oauth2的授权码认证流程及密码认证的流程. 2.理解spring Security Oauth2的工…
在使用Spring框架的项目中,@Value是使用比较频繁的注解之一,它的作用是将配置文件中key对应的值赋值给它标注的属性.在日常使用中我们常用的功能都比较简单,本篇文章系统的带大家来了解一下@Value的使用方法. @Value注入支持形式 @Value属性注入功能根据注入的内容来源可分为两类:通过配置文件的属性注入和通过非配置文件的属性注入. 通过配置文件的注入根据配置文件的来源又可分为两类:一类为默认的Spring Boot会自动加载的配置文件application.properties…
1. 功能说明 当需要在不影响方法执行的情况下更新缓存时,可以使用 @CachePut,也就是说,被 @CachePut 注解的缓存方法总是会执行,而且会尝试将结果放入缓存(当然,是否真的会缓存还跟一些注解参数有关,比如:unless 参数).@CachePut 跟 @Cacheable 有相同的参数属性(但是没有 sync 属性).@CachePut 更加适合于缓存填充,而不是方法执行流的优化. 由于与 @Cacheable 的属性基本相同,所以不再重复示例.这里重点说明一下它们的区别: @C…
一:配置web.xml 1)问题:spring项目中有多个配置文件mvc.xml   dao.xml 2)解决:在web.xml中 <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/xxx/*.xml</param-value> xxx表示xml文件路径    *.xml表示后缀名为xml的任意文件 </init-param&g…