springmvc
qb170217
这个作者很懒,什么都没留下…
展开
-
Spring依赖注入:自动注入properties文件中的配置
Spring依赖注入:自动注入properties文件中的配置:很多情况下我们需要在配置文件中配置一些属性,然后注入到bean中,Spring提供了org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer类,可以方便我们使用注解直接注入properties文件中的配置。下面我们看下具体如何操作:首先要...原创 2018-08-09 17:21:11 · 840 阅读 · 0 评论 -
到底什么是微服务?
从谷歌的搜索指数来看,微服务的热度在进入 2017 年后突然爆发,国内各大会议和论坛的相关讨论也如雨后春笋般层出不穷,各大一线互联网公司也纷纷将这一技术引入并在实际业务中落地。然而据我所知,国内不少中小规模的技术团队对微服务的概念都不甚了解,对该不该引入微服务也不置可否。还有一些技术团队,没有考虑实际业务场景,只是为了追求技术热点,盲目引入微服务,但又缺乏相应的技术掌控能力,最后影响了业务...原创 2018-08-23 12:43:41 · 2938 阅读 · 0 评论 -
SpringCloud系列第01节之入门
这是一个持续更新的、一些关于 SpringCloud 周边的文章比如它那不走寻常路的版本名、其各组件的功能描述等等简介提到 Spring Cloud,就不得不提微服务中,大名鼎鼎的 NetflixNetflix 开源了他们家久经实战考验的一系列微服务组件,而 Spring Cloud 又对其进行了一系列封装,使之更便于使用Spring Cloud 是在 Spring Boot ...原创 2018-09-16 20:21:31 · 223 阅读 · 0 评论 -
SpringCloud系列第02节之注册中心Eureka
简介Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件它主要包括两个组件:Eureka Server 和 Eureka ClientEureka Client:一个Java客户端,用于简化与 Eureka Server 的交互(通常就是微服务中的客户端和服务端) Eureka Server:提供服务注册和发现的能力(通常就是微服务中的注册中心)...原创 2018-09-16 20:24:50 · 181 阅读 · 0 评论 -
SpringCloud系列第03节之注册中心Eureka进阶
自我保护模式Eureka 在设计时,认为分布式环境的网络是不可靠的,可能会出现网络原因导致 EurekaServer 没有收到实例的心跳而这却并不能说明实例就宕了,所以 EurekaServer 缺省会打开保护模式,它主要是网络分区场景下的一种保护一旦进入保护模式,EurekaServer 将会尝试保护其服务注册表中的信息,不再删除里面的数据(即不会注销任何微服务)相关介绍,详见:...原创 2018-09-16 20:25:10 · 120 阅读 · 0 评论 -
SpringCloud系列第04节之注册中心Eureka高可用
简介Eureka Server 也支持运行多实例,并以互相注册的方式(即伙伴机制),来实现高可用的部署即每一台 Eureka 都在配置中指定另一个 Eureka 地址作为伙伴,它在启动时会向伙伴节点获取注册列表如此一来,Eureka 集群新加机器时,就不用担心注册列表的完整性所以:我们只需要在 Eureke Server 里面配置其他可用的 serviceUrl,就实现了注册中心的...原创 2018-09-16 20:26:08 · 113 阅读 · 0 评论 -
SpringCloud系列第05节之服务消费Ribbon和Feign
RibbonRibbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负载它在联合 Eureka 使用时ribbonServerList 会被 DiscoveryEnabledNIWSServerList 重写,扩展成从 Eureka 注册中心获取服务端列表同时它也会用 NIWSD...原创 2018-09-16 20:26:59 · 221 阅读 · 0 评论 -
SpringCloud系列第06节之断路器Hystrix
前言微服务架构中,一般都存在着很多的服务单元这样就有可能出现一个单元因为网络原因或自身问题而出现故障或延迟,导致调用方的对外服务也出现延迟如果此时调用方的请求不断增加,时间一长就会出现由于等待故障方响应而形成任务积压,最终导致调用方自身服务的瘫痪为了解决这种问题:便出现了断路器(或者叫熔断器,Cricuit Breaker)模式断路器模式源于 Martin Fowler 的 C...原创 2018-09-17 14:14:27 · 188 阅读 · 0 评论 -
SpringCloud系列第07节之服务网关Zuul
为什么需要网关之前的系列文章中演示了,服务提供方和消费方都注册到注册中心,使得消费方能够直接通过 ServiceId 访问服务方实际情况是:通常我们的服务方可能都需要做 接口权限校验、限流、软负载均衡 等等而这类工作,完全可以交给服务方的更上一层:服务网关,来集中处理这样的目的:保证微服务的无状态性,使其更专注于业务处理所以说,服务网关是微服务架构中一个很重要的节点,Sprin...原创 2018-09-17 14:14:15 · 162 阅读 · 0 评论 -
SpringCloud系列第08节之配置中心Config
统一配置中心微服务架构中,每个微服务的运行,都会读取不同环境的不同配置信息而Spring Cloud Config(百度的 Disconf 与之类似)便提供了适用于分布式系统的、集中式的外部化配置支持它能够统一集中管理所有应用的、所有环境的配置文件,且支持热更新其默认采用 git 仓库存储配置信息,好处是 git 工具便可轻松管理配置内容(虽然也支持 svn 仓库存储和本地存储...原创 2018-09-17 14:13:54 · 142 阅读 · 0 评论 -
SpringCloud系列第09节之消息总线Bus
上一节的统一配置中心《SpringCloud系列第08节之配置中心Config》演示了属性热加载其中提到,每次热加载属性时,都要逐次调用每个应用的 /refresh 接口(或者维护 Git 仓库的 Webhooks)来触发属性更新随着系统的扩充,应用的增加,若所有的触发动作都要手工去做(或者维护 Git 仓库的 Webhooks),这是不人道的所以我们希望配置中心的属性发生变化时,能有...原创 2018-09-17 14:13:33 · 155 阅读 · 0 评论 -
Mybatis关联查询 一对多和多对一
一对多的第一种写法首先是有两张表(学生表Student和老师Teacher表),为了更易懂,这里只设置了最简单的几个必要字段。表结构如下图Student表:Teacher表:创建实体beanTeacher.java:public class Teacher { private Integer id; private String name; private ...原创 2018-09-21 10:02:22 · 1640 阅读 · 1 评论 -
Spring-MVC理解之二:前置控制器
一、前置控制器配置与讲解 上篇中理解了IOC容器的初始化时机,并理解了webApplicationContext和SevletContext和servlet的param等的概念和关系。 现在记录,如何配置前置控制器: <servlet> <servlet-name>MainServlet</servlet-name&g...转载 2018-08-17 15:05:47 · 190 阅读 · 0 评论 -
Spring-MVC理解之一:应用上下文webApplicationContext
一、先说ServletContext javaee标准规定了,servlet容器需要在应用项目启动时,给应用项目初始化一个ServletContext作为公共环境容器存放公共信息。ServletContext中的信息都是由容器提供的。举例:通过自定义contextListener获取web.xml中配置的参数1.容器启动时,找到配置文件中的context-param作为键值对放到...转载 2018-08-17 15:03:57 · 95 阅读 · 0 评论 -
WebApplicationContext类的作用
WebApplicationContext是实现ApplicationContext接口的子类。是专门为WEB应用准备的。作用: 1. 它允许从相对于Web根目录的路径中加载配置文件完成初始化工作。从WebApplicationContext中可以获取ServletContext引用,整个Web应用上下文对象将作为属性放置在ServletContext中,以便Web应用环境可以访问Sprin...转载 2018-08-17 14:48:31 · 1097 阅读 · 0 评论 -
关于Spring IOC (DI-依赖注入) 和 关于 Spring AOP (AspectJ) 你需要知道的一切
关于Spring IOC (DI-依赖注入)你需要知道的一切https://blog.csdn.net/javazejian/article/details/54561302关于 Spring AOP (AspectJ) 你该知晓的一切https://blog.csdn.net/javazejian/article/details/56267036...转载 2018-08-10 09:11:31 · 378 阅读 · 0 评论 -
后台程序正常,页面获取不到数据报404的原因-@ResponseBody
@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。 作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMe...原创 2018-08-06 13:39:07 · 1427 阅读 · 0 评论 -
ApplicationContextAware接口的作用
在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的依赖注入即可。但在某些特殊的情况下,Bean需要实现某个功能,但该功能必...转载 2018-08-16 10:21:22 · 87 阅读 · 0 评论 -
SpringContextHolder 静态持有SpringContext的引用
参考https://www.cnblogs.com/sharpest/p/6140744.htmlhttps://blog.csdn.net/chenyiminnanjing/article/details/78618847https://blog.csdn.net/chenyiminnanjing/article/details/78621830https://www.cnblo...转载 2018-08-16 10:22:38 · 518 阅读 · 0 评论 -
Spring实现Aware接口,完成对IOC容器的感知
容器管理的Bean一般不需要了解容器的状态和直接使用容器,但是在某些情况下,是需要在Bean中直接对IOC容器进行操作的,这时候,就需要在Bean中设定对容器的感知。Spring IOC容器也提供了该功能,它是通过特定的Aware接口来完成的。aware接口有以下这些:BeanNameAware,可以在Bean中得到它在IOC容器中的Bean的实例的名字。BeanFactoryAware,...转载 2018-08-16 10:24:37 · 249 阅读 · 0 评论 -
Spring高级运用之浅析Spring Aware
我们应该明白,Spring的依赖注入的最大亮点是你所有的Bean对Spring容器的存在是没有意识的,我们可以将Spring容器换成其他的容器,Spring容器中的Bean的耦合度因此也是极低的。但是我们在实际的开发中,我们却经常要用到Spring容器本身的功能资源,所以Spring容器中的Bean此时就要意识到Spring容器的存在才能调用Spring所提供的资源。我们通过Spring提供的...转载 2018-08-16 10:25:24 · 154 阅读 · 0 评论 -
Spring bean 通过实现 InitializingBean ,DisposableBean 接口实现初始化方法和销毁前操作
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种是:通过 在xml中定义init-method 和 destory-method方法第三种是: 通过bean实现InitializingBean和 DisposableBean接口 ...转载 2018-08-16 13:57:19 · 312 阅读 · 0 评论 -
long类型转换成日期
String 类型毫秒数转换成日期 /** * @Description: String类型毫秒数转换成日期 * [@param](http://my.oschina.net/param) lo 毫秒数 * @return String yyyy-MM-dd HH:mm:ss */ pub...转载 2018-08-16 13:57:50 · 2707 阅读 · 0 评论 -
java如何得到项目的webRoot 路径?system.root
使用JAVA后台代码取得WEBROOT物理路径,可以有如下两种方式:1、使用JSP Servlet取得WEB根路径可以用request.getContextPath(),相对路径request.getSession().getServletContext().getRealPath("/"),它们可以使用我们很容易取得根路径。2、如果使用了spring, 在WEB-INF/web.xml...原创 2018-08-16 15:14:27 · 7939 阅读 · 0 评论 -
web项目配置webAppRootKey 获得根目录
log4j和web.xml配置webAppRootKey 的问题1 在web.xml配置 <context-param> <param-name>webAppRootKey</param-name> <param-value>web.sample.root</param-value></context-param&...转载 2018-09-17 14:14:44 · 926 阅读 · 0 评论 -
通过 ServletContextEvent 获取spring的applicationContext文件所在的路径
public class UserStatusListener implements ServletContextListener { /** * Servlet容器启动的时候,将会执行此方法; */ public void contextInitialized(ServletContextEvent event) { ...转载 2018-08-17 09:16:39 · 2137 阅读 · 0 评论 -
把response body以流的形式下载文件
@GetMapping("downProcessFile.do") @ApiOperation(value = "test导出", tags = {"productAccess"}, httpMethod = "GET") public void downProcessFile(HttpServletRequest request, HttpServletResponse re...原创 2018-10-30 17:06:50 · 7470 阅读 · 0 评论