Spring
文章平均质量分 63
鲲鹏飞九万里
过好每一天,就是过好这一生。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Cache的基础
Spring Cache文章目录Spring Cache一、认识`Spring Cache`二、Spring Cache 抽象2.1 缓存注解(1)`@Cacheable`(2)`@CachePut`(4)`@Caching`(5) `@CacheConfig` 类级别的缓存三、实践经验一、认识Spring Cache第一步:配置缓存管理 <context:component-scan base-package="com.hef"/> <cache:annotatio原创 2020-08-13 22:01:10 · 166 阅读 · 0 评论 -
SpringJDBC访问数据库
Spring JDBC 访问数据库文章目录Spring JDBC 访问数据库一、返回数据库的表自增主键值二、批量更新数据三、查询数据四、BLOB/CLOB类型数据的操作4.1 插入LOB类型的数据4.2 读取LOB类型的数据(1) 以块数据方式读取LOB数据(2)以流数据方式读取LOB数据五、自增键和行集5.1 自增键的使用(1)以表方式产生主键值(2)`DataFieldMaxValueIncrementer`存在的问题5.2 规划主键的方案(1)“应用层主键“方案,新数据的主键分配由应用层负责(2)”原创 2020-08-09 17:48:41 · 255 阅读 · 0 评论 -
Spring与数据连接泄漏
Spring与数据连接泄漏文章目录Spring与数据连接泄漏一、Spring对避免数据连接泄露问题的承诺二、模拟数据连接泄露三、事务环境下,通过`DataSourceUtils`获取数据连接四、无事务环境下,通过`DataSourceUtils`获取数据连接,仍会导致连接泄露五、`TransactionAwareDataSourceProxy`对数据源进行代理一、Spring对避免数据连接泄露问题的承诺只要在程序中使用Spring Dao的模版(如 JdbcTemplate、HibernateTemp原创 2020-08-08 17:20:53 · 580 阅读 · 0 评论 -
Spring的事务管理
Spring的事务管理文章目录Spring的事务管理一、数据库事务1.1 数据库事务的四个特性(ACID)1.2 数据并发的问题1.3 数据库锁机制1.4 事务的隔离级别1.5 JDBC对事务的支持二、`ThreadLocal`2.1 与Thread同步机制的比较三、Spring对事务管理的支持3.1 事务管理关键抽象3.2 Spring的事务管理器实现类四、Spring的事务传播五、事务配置5.1 使用原始的`TransactionProxyFactoryBean`(1) 声明式事务配置(2) 基于ao原创 2020-08-08 15:37:33 · 207 阅读 · 0 评论 -
Spring的事务管理
Spring的事务管理文章目录Spring的事务管理一、数据库事务1.1 数据库事务的四个特性(ACID)1.2 数据并发的问题1.3 数据库锁机制1.4 事务的隔离级别1.5 JDBC对事务的支持二、`ThreadLocal`2.1 与Thread同步机制的比较三、Spring对事务管理的支持3.1 事务管理关键抽象3.2 Spring的事务管理器实现类四、Spring的事务传播五、事务配置5.1 使用原始的`TransactionProxyFactoryBean`(1) 声明式事务配置(2) 基于ao原创 2020-08-06 23:19:29 · 194 阅读 · 0 评论 -
Spring SpEL
Spring SpEL文章目录Spring SpEL一、JVM动态语言二、SpEL表达式三、SpEL的核心接口3.1 `ExpressionParser`(1) 字符串的拼接3.2 `EvaluationContext`(2) 针对特定实例对象的属性进行求值3.3 `SpelCompiler`可以将字节码直接编译成字节码四、SpEL表达式4.1 文本字符解析4.2 对象属性解析4.3 数组、集合类型解析4.4 方法解析4.5 操作符解析(1) 关系操作符(2)逻辑操作符(3)算术运算操作符4.6 安全导航原创 2020-07-14 22:14:19 · 5159 阅读 · 0 评论 -
基于@AspectJ和Schema的AOP
基于@AspectJ和Schema的AOP文章目录基于`@AspectJ`和Schema的AOP一、`@AspectJ`热身二、`@AspectJ`语法基础2.1 切点表达式函数2.2 在函数入参中使用通配符2.3 逻辑运算符2.4 不同增强类型三、切点函数详解3.1 `@annotation()`3.2 `execution()` 最常用3.3 `args()`3.4 `@args()`3.5 `within()`3.6 `@within()` 和`@target()`3.7 `target()`和`t原创 2020-07-12 17:44:14 · 189 阅读 · 0 评论 -
SpringAOP基础
SpringAOP基础文章目录SpringAOP基础一、AOP的术语1.1 连接点(Joinpoint)1.2 切点(Pointcut)1.3 增强(或通知)(Advice)1.4 目标对象(Target)1.5 引介 (Introduction)1.6 织入(Weaving)1.7 代理(Proxy)1.8 切面(Aspect)二、Spring AOP的动态代理2.1 基于JDK的动态代理2.2 基于CGLib的动态代理三、创建增强3.1 前置增强(1)`ProxyFactory`(2) 在Spring原创 2020-06-28 22:09:16 · 157 阅读 · 0 评论 -
国际化信息
国际化信息文章目录国际化信息一、基础知识1.1 `Locale`1.2 本地化工具类1.3 `ResourceBundle`加载本地化资源1.4 在资源文件中使用格式化串:`ResourceBoundle+MessageFormat`二、Spring对国际化的支持2.1 `MessageSource`2.2 `ResourceBundleMessageSource`2.3 `ReloadableResourceBundleMessageSource`2.4 容器级的国际化信息资源一、基础知识一般需要*原创 2020-06-06 22:04:35 · 189 阅读 · 0 评论 -
Spring使用加密的属性文件
Spring中使用加密的属性文件文章目录Spring中使用加密的属性文件一、`PropertyPlaceHolderConfigurer`属性文件1.1 定义属性文件`application.properties`:1.2 引用属性文件1.3 通过占位符引用属性二、坑:《精通Spring4.x企业应用开发实战》中的6.3.2 使用加密的属性文件三、在云栖社区上发现了一篇好的博文[《spring、spring-boot配置文件属性内容加解密》](https://yq.aliyun.com/articles/原创 2020-06-03 22:27:24 · 243 阅读 · 0 评论 -
Spring容器中的组件,及自定义属性编辑器
Spring容器中的组件,及自定义属性编辑器文章目录Spring容器中的组件,及自定义属性编辑器一、Spring容器中的组件及配合机理1.1 物料组件1.2 设备组件1.3 配合机理二、`BeanDefinition`三、`InstantiationStrategy`四、`BeanWrapper`五、属性编辑器(类型转换器)六、自定义属性编辑器6.1 自定义属性编辑器6.2 注册属性编辑器6.3 使用自定义的属性编辑器一、Spring容器中的组件及配合机理1.1 物料组件Resource原创 2020-05-31 16:56:49 · 280 阅读 · 0 评论 -
在IOC容器中装配Bean——基于注解的配置
在IOC容器中装配Bean——基于注解的配置文章目录在IOC容器中装配Bean——基于注解的配置一、使用注解定义Bean二、扫描定义的Bean三、自动装配Bean3.1 通过`@Autowired`进行自动装配3.2 `required`属性3.3 `@Qualifier`指定注入Bean的名称3.4 `@Autowired`可以对类成员变量及方法对入参进行标注3.5 对集合进行标注3.6 `@Lazy`对延迟依赖注入的支持3.7 对标准注解的支持`@Resource`、`@Inject`四、Bean作用原创 2020-05-24 17:34:42 · 273 阅读 · 0 评论 -
在IOC容器中装配Bean——基于XML
在IOC容器中装配Bean——基于XML文章目录在IOC容器中装配Bean——基于XML一、Spring容器的高层视图二、Spring支持的Bean配置方式三、基于XML的配置2.1 命名空间定义的步骤2.2 Bean的命名四、依赖注入4.1 属性注入4.2 构造函数注入4.3 属性注入和构造函数注入一起使用4.4 工厂方法注入4.5 注入参数详解(1)字面值(2)引用其他的Bean(3)内部Bean(4)null值(5) 级联属性(6)集合类型属性4.6 简化配置方式4.7 自动装配五、方法注入5.1原创 2020-05-24 16:55:05 · 291 阅读 · 0 评论 -
Spring的IOC容器
Spring 的IOC容器文章目录Spring 的IOC容器一、IOC的概念(和DI表达的是一个意思)二、BeanFactory和ApplicationContext三、WebApplicationContext3.1 WebApplicationContext的初始化(1)通过配置Servlet来启动WebApplicationContext(2)通过配置监听器来启动WebApplicationContext四、Bean的声明周期4.1 BeanFactory中Bean的生命周期4.2 Applicat原创 2020-05-23 15:48:49 · 189 阅读 · 0 评论 -
SpringSecurity没有过滤默认的“/logout”,出现404页面
在按照《Spring in Action》上第九章做的时候,发现问题,出现下面的页面:此时,我的SpringSecurity配置如下: @Override protected void configure(HttpSecurity http) throws Exception { http.formLogin() .log...原创 2019-03-26 22:04:58 · 1749 阅读 · 1 评论 -
Spring Boot 实战
前言: 首先要按照Spring Boot CLI一、一个完整的基于Groovy的Spring应用程序@RestControllerclass HelloController{ @RequestMapping("/") String hello(){ return "hello world" }}运行这个Spring程序: spring run H...原创 2019-05-11 22:43:56 · 139 阅读 · 0 评论 -
SpringBoot项目:Table 'XXX.hibernate_sequence' doesn't exist
启动Spring Boot应用,进行操作的时候出现这样的错误: '***.hibernate_sequence' doesn't exist经过查询,将id生成策略进行如下修改(原本为: auto):@GeneratedValue(strategy = GenerationType.IDENTITY)参考:spring错误...转载 2019-05-15 10:52:10 · 1240 阅读 · 0 评论 -
将SpringBoot应用部署到云端(Cloud Foundry)
最近在实践《SpringBoot in Action》,将写好的SpringBoot应用打包,推上云端,下面是记录详细的过程。一、将应用打包,生成一个war文件二、在Cloud Foundry网站上注册,下载工具Cloud Foundry提供60天的免费试用,试用期间无需提供任何信用可信息。还需要在Cloud Foundry上下载一个工具:三、将war包推导Cloud ...原创 2019-05-15 13:36:19 · 1413 阅读 · 2 评论 -
SpringBoot 与 Spring Security整合,出现POST请求403
近日在学习SpringBoot与Spring Security整合,遇到post请求403的问题:最初调试该问题的时候,去到SecurityConfig.java 中配置 POST请求, 发现并不奏效:http.authorizeRequests() .antMatchers(HttpMethod.POST, "/readingList/**").ha...原创 2019-05-11 15:37:41 · 4228 阅读 · 6 评论 -
Spring 集成MyBatis和Spring Boot集成MyBatis
一、MyBatis介绍<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version></dependency>1.1 作用域(Scope)...原创 2020-03-03 22:23:16 · 217 阅读 · 0 评论 -
SpringBoot项目开发实录
记录开发一个完整SpringBoot项目的过程。一、项目初始化1.1 使用 Liquibase作为数据库迁移工具第一步:引入 Liquibase 依赖: <!-- 数据库迁移工具: liquibase--> <dependency> <groupId>org.liquibase</gr...原创 2019-05-16 10:46:25 · 286 阅读 · 0 评论 -
Thymeleaf 页面模板的使用
本文汇集使用Thymeleaf页面模板的用法记录。一、将路径参数作为url的一部分如下请求,会转到readingList.html 页面,该页面中有一个<form>表单,表单的url需要获取路径参数@RequestMapping(value = "/{reader}", method = RequestMethod.GET) public String read...原创 2019-05-11 22:39:17 · 252 阅读 · 0 评论 -
Spring Security 配置细节
一、获取路径参数想要判断路径参数是否与登陆用户的用户名相同,配置如下:@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").authenticated()...原创 2019-05-11 22:43:41 · 223 阅读 · 0 评论 -
使用JMX管理Spring Bean
JMX(Java Manage-ment Extensions)Java管理扩展:改变运行中应用的配置一、将Spring Bean导出为MBean /** * 在Spring中声明一个 MBeanExporter, 将spittleController bean导出为一个模型MBean * @param spittleController * @r...原创 2019-05-04 12:07:55 · 374 阅读 · 0 评论 -
Spring 集成(Caucho Technology)Hession ,远程服务调用【实践详解】
最近在阅读远程服务调用。在实践Spring集成Hessian过程与,遇到一个问题:Caused by: com.caucho.hessian.client.HessianConnectionException: HessianProxy cannot connect to 'http://localhost:8080/SpringRPCServiceSpittrCauchoTechnolog...原创 2019-04-19 14:02:51 · 510 阅读 · 0 评论 -
使用Spring发送邮件
注意事项:一、在邮箱出设置客户端授权密码;二、在程序中要将邮箱密码改为客户端授权码一、设置客户端授权码原创 2019-05-03 11:37:45 · 200 阅读 · 0 评论 -
使用容器类型的JPA
使用容器类型的JPA,就不需要再配置persistence.xml了。详细的代码,在github上。使用Java配置JPA/** * 配置容器管理类型的JPA * ContextLoaderListener */@Configuration@ComponentScan(basePackages = {"com.hef.spittr"}, excludeFilters =...原创 2019-04-05 11:35:53 · 304 阅读 · 0 评论 -
配置应用程序管理类型的JPA
在《Spring in Action》中,读到“配置应用程序类型的JPA”,在实践的过程中遇到很多问题,现在将这个探索的成果记录下来:详细的代码,在github上。 项目的结构如下: 第一步:配置persistence.xml注意:配置的名字,“javax.persistence.jdbc.user”<?xml version="1.0" encod...原创 2019-04-05 09:26:13 · 260 阅读 · 0 评论 -
Spring Web Flow 实战案例
说明:在阅读《Spring in Action》Spring Web Flow之后,尝试做里面的案例,期间遇到了很多的坑。将自己做这个案例所遇到的情况做一下记录。关于该案例的详细代码,请参考本人github上的代码:https://github.com/hefrankeleyn/learning-area/tree/master/006Spring/pizza Spring ...原创 2019-03-24 17:42:06 · 430 阅读 · 1 评论 -
Spring后端:数据源的四种配置方法
使用Spring能够简化数据源的配置,配置数据源的方式有四种:1、JNDI方式;2、数据源连接池;3、基于JDBC驱动的数据源;4、使用嵌入式的数据源。 四种配置方式的数据源,可以同时使用。通过配置Spring的profile bean来决定使用哪个bean。下面是数据源的四种配置方式(关于完整的代码在github上):(关于JNDI的配置,请看“在tomca...原创 2019-03-30 22:13:37 · 366 阅读 · 0 评论 -
在tomcat上通过JNDI配置H2的数据源
使用JNDI数据源的好处是,数据源完全可以在应用程序之外进行管理,这样应用程序只需在访问数据库的时候查找数据源就可以了。第一步:将数据驱动的jar包,放到tomcat的lib目录下:第二步:修改tomcat的conf目录下的servlet.xml文件第三步: 配置tomcat的confi目录下的context.xml文件第四步:在jsp中(由于需要启动t...原创 2019-03-30 16:06:48 · 790 阅读 · 0 评论 -
Spring Security使用
写在前面,实践Spring Security遇到的坑:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' available出现该原因是Spring ContextLoaderListener 上下面加载不到该bean,应当让配...原创 2019-03-26 21:48:24 · 280 阅读 · 0 评论 -
Spring Security遇到的问题:org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier;)V
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' defined in class path resource [org/springframework/security/config/annotation/web/...原创 2019-03-26 08:01:21 · 4259 阅读 · 0 评论 -
Spring in Action:@Vaild 表单验证不起作用
在按照《Spring in Action》进行实践的过程中,发现@Vaild表单验证不起作用。最后查明原因如下: 仔细阅读《Spring in Action》,书中说:从Spring3.0 开始,在SpringMVC中提供了对Java效验API的支持(Java Validation API,又称JSR-303)。在Spring MVC中要使用Java效验API的话,并不需要...原创 2019-03-13 13:08:13 · 410 阅读 · 0 评论 -
maven的web项目:SpringMVC的配置
要想理解SpringMVC的配置,首先要理解SpringMVC处理请求的原理:1️⃣请求离开浏览器之后,第一站会来到DispatcherServlet,然后DispatcherServlet会查询一个或多个处理器映射,然后根据映射将请求任务发送给SpringMVC的控制器(通常用注解@Controller标识的类)。2️⃣控制器处理完成之后,会有需要返回给用户的信息,这些信息称为模...原创 2019-03-17 19:43:55 · 1176 阅读 · 0 评论 -
Spring Data JPA 实现自动化的JPA Repository
Spring Data JPA 可以终结样版式的愚蠢行为——仅仅因为要处理的领域类型不同,而要一遍遍写相同持久化的方法。详细的代码,在github上。Spring Data JPA 仅限于单个JPA查询。当需要做的事情无法通过Spring Data JPA来实现,可以使用传统的方式。当Spring Data JPA 为Repository生成实现的时候,它还会查找名字与接口相...原创 2019-04-05 16:30:04 · 3310 阅读 · 1 评论 -
Spring Catching 实战
实践Spring Catching,中间遇到一些问题,记录一下。第一步,搭建一个项目框架,采用Spring Jdbc的方式操作持久化数据在测试的时候,遇到第一个问题:org.h2.jdbc.JdbcSQLException: No data is available在stackoverflow上查到了一个回答:于是我将自己的程序修改为如下,测试成功:@Overri...原创 2019-04-13 15:48:01 · 290 阅读 · 0 评论 -
Spring Data MongoDB 配置
在《Spring in Action》的 Spring Data MongoDB这一章节的时候,遇到的一个问题是jar包导入问题。该参考解决了我的问题:https://mongodb.github.io/mongo-java-driver/需要导入的jar如下: <!-- 配置mongodb 数据库驱动 --> <dependency> ...原创 2019-04-08 22:25:04 · 1407 阅读 · 0 评论 -
Spring + STOMP + RabbitMQ:使用STOMP消息,启用STOMP代理中继
本文是对《Spring in Action》第十八章 的“18.3 使用STOMP消息”实践记录。详细的代码在github上:StompBrokerRelayRabbitMQSpringMarco在实践这部分的时候,最让人抓狂的是,jar依赖,下面列出完整的jar依赖:注意:本人在使用SpringBoot整合STOMP的时候,引入下面的jar会报错。解决方案是升级netty-al...原创 2019-05-02 18:55:36 · 3526 阅读 · 1 评论 -
Spring AMQP,RabbitMQ
一、Spring AMQP的DMP(异步地消费消息)<!-- 定义消息驱动的 AMQP POJO--> <listener-container connection-factory="connectionFactory"> <listener ref="spitterAlertHandler" met...原创 2019-04-27 18:37:35 · 431 阅读 · 0 评论
分享