07 2018 档案
摘要:当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。 redis提供了一个master,多个slave的服务。 准备三个redis服务,依次命名文件夹子master,slave1,slave2.
阅读全文
摘要:最近用到在Tomcat服务器启动时自动加载数据到缓存,这就需要创建一个自定义的缓存监听器并实现ServletContextListener接口, 并且在此自定义监听器中需要用到Spring的依赖注入功能. 在web.xml文件中监听器配置如下: Xml代码 <listener> <listener-
阅读全文
摘要:util:properties和context:property-placeholder标签都可以用来获取外部配置文件中的内容 1、util:properties 它是以声明bean方式来使用,创建了一个bean,下面使用的时候通过SpEL表达式#{}获取bean的属性。 需要注意,这种方式需要在s
阅读全文
摘要:@Controller 在 springmvc 2.5 之前通过继承 Controller 接口实现控制器 在 springmvc 2.5 之后利用注解的方式(即 @Controller)实现控制器,实现了彻底解耦。一个类在使用了该注解之后就表明自己是一个控制器。 首先来看 @controller
阅读全文
摘要:基本概念 Spring IoC 容器的初始化过程在监听器 ContextLoaderListener 类中定义。 具体由该类的的 configureAndRefreshWebApplicationContext 方法实现,它包含了两个过程: 配置过程 刷新过程 原理分析 下面来看 configure
阅读全文
摘要:基本概念 BeanDefinitionRegistry ,该类的作用主要是向注册表中注册 BeanDefinition 实例,完成 注册的过程。 它的接口定义如下: public interface BeanDefinitionRegistry extends AliasRegistry { //
阅读全文
摘要:基本概念 BeanDefinitionDocumentReader ,该类的作用有两个,完成 BeanDefinition 的解析和注册 。 解析:其实是解析 Ddocument 的内容并将其添加到 BeanDefinition 实例的过程。 注册:就是将 BeanDefinition 添加进 Be
阅读全文
摘要:基本概念 BeanDefinitionReader ,该接口的作用就是加载 Bean。 在 Spring 中,Bean 一般来说都在配置文件中定义。而在配置的路径由在 web.xml 中定义。所以加载 Bean 的步骤大致就是: 加载资源,通过配置文件的路径(Location)加载配置文件(Reso
阅读全文
摘要:基本概念 ResourceLoader 接口,在 Spring 中用于加载资源,通过它可以获取一个 Resouce 对象。 内部构造 首先来看它的接口定义: 再来看它的继承关系,如下所示: DefaultResourceLoader : 作为 ResourceLoader 接口的直接实现类,该类实现
阅读全文
摘要:基本概念 Spring 把所有能记录信息的载体,如各种类型的文件、二进制流等都称为资源。 对 Spring 开发者来说,最常用的资源就是 Spring 配置文件(通常是一份 XML 格式的文件)。 Spring 为资源访问提供了一个 Resource 接口,利用该接口来表示不同类型的资源。并且 Sp
阅读全文
摘要:基本概念 Spring Ioc 容器被创建之后,接下来就是它的初始化过程了。该过程包含了配置、刷新两个步骤 。 刷新由 Spring 容器自己实现,具体发生在 ConfigurableApplicationContext 的 refresh 方法中。 首先来看该接口的继承关系: 由于这里 Sprin
阅读全文
摘要:基本概念 Spring IoC 容器负责 Bean 创建、以及其生命周期的管理等。想要使用 IoC容器的前提是创建该容器。 创建 Spring IoC 容器大致有两种: 在应用程序中创建。 在 WEB 程序中创建。 实例探究 1.应用程序创建容器 这里以 Application 为例,介绍下在普通的
阅读全文
摘要:基本概念 Spring 的 Ioc 容器,通常也称应用上下文。它包含了两个概念 Ioc 和 容器: 容器:顾名思义就是用来装东西的,在 Spring 中容器里盛放的就是各种各样的 Bean。既然装了东西,那么理所应当的要控制东西何时盛放(添加),何时倒掉(移除),这就是所谓的 Bean 管理。因此
阅读全文
摘要:可用来修改bean对象的BeanPostProcessor 11.1 简介 BeanPostProcessor是Spring中定义的一个接口,其与之前介绍的InitializingBean和DisposableBean接口类似,也是供Spring进行回调的。Spring将在初始化bean前后对Bea
阅读全文
摘要:从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext
阅读全文
摘要:1、有时候需要从properties文件中加载配置,以前的方式是这样的: [html] view plain copy <bean id="jdbcProperties" class="org.springframework.beans.factory.config.PropertyPlacehol
阅读全文
摘要:说到Spring框架,人们往往大谈特谈一些似乎高逼格的东西,比如依赖注入,控制反转,面向切面等等。但是却忘记了最基本的一点,Spring的本质是一个bean工厂(beanFactory)或者说bean容器,它按照我们的要求,生产我们需要的各种各样的bean,提供给我们使用。只是在生产bean的过程中
阅读全文
摘要:1 @Value("#{}") SpEL表达式 @Value("#{}") 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量 @RestController @RequestMapping("/login") @Component public clas
阅读全文
摘要:解决问题:在java8 之前的版本,在修改已有的接口的时候,需要修改实现该接口的实现类。 作用:解决接口的修改与现有的实现不兼容的问题。在不影响原有实现类的结构下修改新的功能方法 案例: 首先定义一个接口DefaultMethodInterface,该接口中定义了静态变量/接口方法/无返回值的默认方
阅读全文
摘要:1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> From modules with dependencies... 3, Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个 4,如下图,设置
阅读全文
摘要:延迟加载: lazy策略原理:只有在使用查询sql返回的数据是才真正发出sql语句到数据库,否则不发出(主要用在多表的联合查询) 1.一对一延迟加载: 假设数据库中有person表和card表:其中person表中有字段pid,pname,page,psex,cid,card表中有字段cid,cnu
阅读全文
摘要:概念:从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据) 应用场合: 如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性; 如果你一次执行多条查询语句,例如统计查询,
阅读全文
摘要:一、SQL注入漏洞基本原理 在常见的web漏洞中,SQL注入漏洞较为常见,危害也较大。攻击者一旦利用系统中存在的SQL注入漏洞来发起攻击,在条件允许的情况下,不仅可以获取整站数据,还可通过进一步的渗透来获取服务器权限,从而进入内网。 注入攻击的本质,是把用户输入的数据当做代码执行。这里有两个关键条件
阅读全文
摘要:一、代理模式 代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 以简单模拟事务的执行过程说明各种代理区
阅读全文
摘要:在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所
阅读全文
摘要:在web.xml中使用contextConfigLocation参数定义要装入的Spring配置文件。 1. 在web.xml里配置需要加载的spring配置文件。 如果要装入多个配置文件,在<param-value>标记中用逗号作分隔符即可。 2. 在web.xml里配置Listener,本Lis
阅读全文
摘要:众所周知,基本上javaee的配置文件都放在WEB-INF之下,javaee网页工程默认读取配置文件也只会在这个目录下面读,但经常看到一些javaee不知道是装逼,还是因为用myeclipse自动生成,还是为了好管理的原因,将工程的配置文件移到其它文件夹,他们基本利用了SpringMVC的conte
阅读全文
摘要:1、src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。 2、WEB-INF/classes目录存放src目录java文件编译之后的class文件,xml、properties等资源配置文件,这是一个定位资
阅读全文
摘要:在使用Spring框架的时候,如果我们使用的是XML文件配置Bean的方式的话,我们往往会在web.xml里面配置如下内容: 这是因为如果我们有配置ContextLoaderListener, Spring会去web.xml中看我们是否有定义contextConfigLocation这个参数,如果有
阅读全文
摘要:Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。 构造方法注入 先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面只有一个User类dao:数据访问,一个接口,两个实现类service
阅读全文
摘要:最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意。最近想着寻根问底的探究一下。以下是本文主要内容: 1、配置文件示例。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sprin
阅读全文
摘要:先前已经做过了freemarker的java例子,今天就来做个freemarker与springMVC整合的web例子,具体配置会讲解。 项目的结构图如下: 现在开始具体讲解整合方面的配置。 由于我做的是maven工程,因此jar包是配置pom.xml在线下的. 1.先来配置web.xml,在里面添
阅读全文
摘要:很早之前, 记得一次面试, 面试官问存储金钱用什么数据类型? 当时只知道8种数据类型(boolean, byte, short, int, long, float, double, char)的我, 回答了double, 因为我觉得double是双精度类型, 最适合, 但是面试官告诉我应该用BigD
阅读全文
摘要:这个问题整整纠结了我四个多小时,心好累啊。。。不废话。。。 背景:Spring整合Mybatis 报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解释:就是说,你的Mapper接口,
阅读全文