随笔分类 - Spring
摘要:一、简介 Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用JDK中提供的静态常量,获取外部Properties文件中的的配置 二、用法 1、文本表达式 文本表达式
阅读全文
摘要:SpringMVC的工作原理图: springMVC中的几个组件: 前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。 处理器映射器(HandlerMapping):根据URL去查找处理器 处理器(Handler):(需要程序员去写代码处理逻辑的) 处理器适配
阅读全文
摘要:之前用户使用的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。 @SpringBo
阅读全文
摘要:Spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置。 一、首先,需要xml中进行少量的配置来启动Java配置: 二、定义一个配置类 用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置b
阅读全文
摘要:持久层使用jpa时,默认提供了一个注解@Version来实现乐观锁 简单来说就是用一个version字段来充当乐观锁的作用。先来设计实体类 Dao层 Controller层充当单元测试的作用,通过访问一个requestMapping来触发我们想要测试的方法。 这里面三个方法,主要是我们想用来测试的三
阅读全文
摘要:多数据源问题很常见,例如读写分离数据库配置。 1、首先配置多个datasource 2、写一个DynamicDataSource类继承AbstractRoutingDataSource,并实现determineCurrentLookupKey方法 3、利用ThreadLocal解决线程安全问题 4、
阅读全文
摘要:一般我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置文件的编写带来繁重的工作,这时就该BeanNameAutoProxyCreator出场了。 (一)Prox
阅读全文
摘要:load-on-startup标记容器是否在启动的时候实例化并调用其init()方法的优先级。 它的值表示servlet应该被载入的顺序 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet; 如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函
阅读全文
摘要:一、接口 1、EventListener 2、HttpSessionAttributeListener 继承EventListener接口 HttpSessionAttributeListener是“属性改变监听器”,当在会话对象中加入属性、移除属性或替换属性时,相对应的attributeAdded
阅读全文
摘要:tomcat容器启动流程 启动tomcat容器,加载web.xml,建立整个容器(Servlet容器,这里是tomcat吧)的上下文,ServletContext,这时web.xml有个监听器,就是ContextLoaderListener,监听到这个事件,就会去扫描spring配置文件,默认是ap
阅读全文
摘要:缓存注解有以下三个: @Cacheable @CacheEvict @CachePut @Cacheable(value=”accountCache”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 accountCache 的缓存中查询,如果没有,则执行实际的方法(即查询数据库),并将执行
阅读全文
摘要:概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(
阅读全文
摘要:在使用spring做事务管理时,很多人都会遇到这样一段异常: 出现上面问题的场景类似下面代码这样: ITestAService: TestAService: TestBService: 测试用例: testAService调用testBService的testB()方法,testB()方法里抛了一个
阅读全文
摘要:本文内容 如何在spring事务提交之后进行一些操作,这些操作必须得在该事务成功提交后才执行,回滚则不执行。 要点 如何在spring事务提交之后操作 如何在spring事务回滚之后操作 如何在spring事务提交之后操作 实现方案 使用TransactionSynchronizationManag
阅读全文
摘要:不管采用何种持久化技术,都需要定义数据源。Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源。 1.spring自带的数据源 DriverManagerDataSource X
阅读全文
摘要:无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异常处理,展现一个比较友好的错误页面就显得很有必要了。跟其他MVC框架一样,springMVC也有自己的异常处理机制。springMVC提供的异常处理主要有两种方式,一种是直接
阅读全文
摘要:spring cache,基本能够满足一般应用对缓存的需求,但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具备持久化数据能力,这个时候,你就需要自定义你的缓存方案了,还好,spring 也想到了这一点。 本篇文章
阅读全文
摘要:Ant path 匹配原则 在Spring MVC中经常要用到拦截器,在配置需要要拦截的路径时经常用到<mvc:mapping/>子标签,其有一个path属性,它就是用来指定需要拦截的路径的。例如: <mvc:interceptor><mvc:mapping path="/**" /><bean c
阅读全文
摘要:拦截器: com.zk.interceptors.MyInterceptor 实现了 HandlerInterceptor接口,可以拦截@RequestMapping注解的类和方法 第一种方式 拦截正常 第二种方法,拦截不到 DefaultAnnotationHandlerMapping类中说Def
阅读全文
摘要:一、@interface Java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。 二、@Override,@Deprecated,@SuppressWarnings 注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后
阅读全文