Spring里的坑】的更多相关文章

Spring里的坑 1. 配置文件配置controller,在Controller中使用注解配置的bean,会出现获取不到bean的情况 步骤一:使用在配置文件 springmvc.xml 中配置的方式配置controller <bean name="login.action" class="com.orderonline.controller.admin.LoginController"></bean> 步骤二:在controller中获取…
feign是啥? 很多人可能对于feign 不是很熟悉,可以看一下其他网友的实例分享:spring cloud feign简介 如果觉得上面这个比较难的话,还有一个简单入门的:spring cploud feign使用详解 今天的主题是记录遇到的坑,关于feign的资料网友分享已经很详细,我就不班门弄斧啦啦 feign 坑之@RequestParam参数名 这次在做一个中台项目(使用 spring boot),需要和市场上很多同行公司结合的那种,这就涉及到同个服务需要被很多外部服务调用的场景,之…
有的人说事物在spring里设置有两种,其实事物设置在spring配置文件中共有五种方式:第一种方式:每个Bean都有一个代理第二种方式:所有Bean共享一个代理基类第三种方式:使用拦截器第四种方式:使用tx标签配置的拦截器第五种方式:在service层的方法上面用@Transactional()注解进行事物的设置 常用的两种: 声明式事物和编程式事物 1.声明式 这种方法不需要对原有的业务做任何修改,通过在XML文件中定义需要拦截方法的匹配即可完成配置,要求是,业务处理中的方法的命名要有规律,…
应用启动的时候失败,看了下异常,是这个---NoUniqueBeanDefinitionException. 大家都知道,这是因为有俩个类型相同的实例,在被注入的时候,spring不知道该用哪个. 但是,我们都知道,一个向spring注册的bean,他的名字默认是这个类的shortclassname,然后对第一个字母小写.在使用的时候,使用@Resource注解,会先用这个字段的命名作为bean的name去spring里找.看了下,代码里完全遵守了这个规则,但是还是报错,所以到spring内部一…
Spring WebSocket踩坑指南 本次公司项目中需要在后台与安卓App间建立一个长连接,这里采用了Spring的WebSocket,协议为Stomp. 关于Stomp协议这里就不多介绍了,网上一搜一大把,这里主要说下在配置过程的踩过的那些坑. 官网才是首选 首先在我们第一次尝试WebSocket肯定会搜寻各种各样的博客,在看完关于Stomp和长连接的基础知识,确定使用Spring WebSocket后,请马上进入官网Spring WebSocket,并下载该网站右侧的源码,这将节省大量时…
版权声明:本文为博主武伟峰原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. 在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service.但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service. 下面讲一个方法,让普通工具类也能使用service. 定义一个类 Sprin…
spring里面的ioc就是控制反转,其实现核心是DI(依赖注入),控制反转不向以前java代码里面,通过new关键字来实现创建对象,这样每段代码之间的耦合度就比较高,为了降低每个小模块之间的耦合度,就用了控制反转:1.降低了每个小模块之间的耦合度:2.不在向以前那样,依赖new关键字来实现创建对象,而是通过spring容器来实现创建对象(由第三方进行创建对象):3.在一定程度上,实现不在依赖对象,通过代理实现创建对象:4.管理对象与对象之间的关系,实现动态注入…
Spring里的Ant Pattern用于匹配URL 可以参考官网:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html 规则很简单 ? 匹配单个字符 * 匹配0个或者多个字符 ** 匹配0个或多个路径(也就是用/分割的多级路径) {spring:[a-z]+} 按照正则匹配[a-z]+,并且将其作为路径变量,变量名为"spring" 举例…
不知道大家每次使用Spring boot的时候有没有看过它启动类里 @SpringBootApplication这个注解呢?众所周知,这个注解是一个复合注解,但是注解是不能继承元注解的属性的,也就是说,我在类扫描的时候,拿到的注解的属性值,依然是元注解的属性值,而不是你定义的注解的属性值 那么它是怎么做到使用别的注解的属性的呢?玄机就在这个 @AliasFor注解上,它可以指定某个元注解里的属性,并将其重新命名.这样我们可以自由的将Spring里各个注解再进行一遍封装,下面给大家看个Demo,…
@Transactional踩坑记 总述 ​ Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务控制. 然而看起来越是简单的东西,背后的实现可能存在很多默认规则和限制.而对于使用者如果只知道使用该注解,而不去考虑背后的限制,就可能事与愿违,到时候线上出了问题可能根本都找不出啥原因. 踩坑记 1. 多数据源 事务不生效 背景介绍 ​ 由于数据量比较大,项目的初始设计是分库分表的.于是在配置文件中…
1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现.PropertyPlaceholderConfigurer可以将上下文(配置文 件)中的属性值放在另一个单独的标准java Properties文件中去.在XML文件中用${key}替换指定的properties文件中的值.这样的话,只需要对properties文件进 行修改,而不用对xml配置文件进行修改. 2.在Spring…
今天将项目的spring版本升级到4.2.5版本后,登录首页发现资源文件全部访问不到,页面彻底挂掉: 查找原因,后来又查找spring的更新文档后,才确认下来原来是mvc-dispatcher-servlet.xml中静态资源文件的配置写的有问题 //下面这个是旧版本我们之前写的配置文件 <mvc:resources location="/assets/**" mapping="/assets/**" /> <mvc:resources locat…
2019年2月19日19:25:42 版本 2.1.3.RELEASE 1,本地开发需要加依赖库,保存实时热更新 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> 配置是否开启 spr…
用spring cloud 微服务框架有一段时间了有一些坑点在这里给大家记录一下希望大家用得着 1.当我们使用聚合性能监控的时候,我们采用 rabbitmq作为消息中间件来收集性能信息最后在使用TurbineStream将信息进行聚合 这个工具聚合是根据“应用名+方法名”进行求和汇总的 如下代码: @HystrixCommand(commandProperties = { @HystrixProperty(name = "execution.isolation.thread.timeoutInM…
Resolved exception caused by handler execution: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class cn.argonavis.labeltool.bean.ResponseBean 将return的类添加getter/setter: 前端报错:POST http:/…
前言 主要介绍自己在学习spring mvc过程中踩到的一些坑,涉及到当时遇到这个错误是如何思考的,对思路进行总结,下次遇到类似的错误能够提供一些思路甚至快速解决. 环境准备 jdk8,spring4.3.3.RELEASE,spring mvc与spring版本一致,maven3.2.5,tomcat7 目标: 1.测试spring mvc的json参数绑定功能 2.测试spring mvc的返回json功能 项目目录(已经推送到github:https://github.com/Coming…
原文:http://jinnianshilongnian.iteye.com/blog/1762632 component-scan的作用的自动扫描,把扫描到加了注解Java文件都注册成bean <context:component-scan base-package="com.target"> </context:component-scan> 今天在看一个代码项目时,看到有人使用了类似如下配置.看字面意思是要把@Service的注解包括进来,把@Contro…
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_18860653/article/details/79907984问题描述在使用Spring 事务的时候,加上了timeout的限制,@Transactional(timeout = 10),发现事务不会因为超时回滚. 功能描述所谓事务超时,就是指一个事务所允许执行的最长时间,如果超过该时间限制但事务还没有完成,则自动回滚事务.在 T…
今天遇到一件怪事,用一个ArrayList添加了一个对象,再调用ArrayList的remove方法删除该对象,当然这时对象是数据库里查出来的,但内容绝对是一样,却发现remove失败了.演示一下,这里用了自定义的Merchant对象,测试时只需随便自定义一个对象即可: public static void main(String[] args) { List<Merchant> merchants = new ArrayList<>(); Merchant merchant =…
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现.如果需要了解该框架的入门,百度一下,很多入门的介绍.在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spring整合,和第三方插件整合,缓存,插件,最后会持续到mybatis的架构,源码解释,重点会介绍几个重要的设计模式,…
结果   填坑失败,并没有看懂是如何检测sql攻击的. 只能说的是: 建议都使用参数化传递sql语句参数.(所以,用hibernate.mybatis等框架的真不用太担心sql攻击问题.) 前言 本文主要是为了填坑:[spring]jdbcTemplate之sql参数注入 在上文中的demo是: 正确sql: select c.child_id childId,c.child_name,c.child_age childAge,c.parent_id parentId from child c…
AFN框架是用来用来发送网络请求的,它的好处是可以自动给你解析JSON数据,还可以发送带参数的请求AFN框架还可以监测当前的网络状态,还支持HTTPS请求,分别对用的类为AFNetworkReachabilityManager,AFSecurityPolicy 虽然AFN可以发送请求,但是里面有许多坑,  1.你想要得到正确的JSON数据必须要:网络请求成功,服务器返回的必须是JSON 数据,自己(AFN)还能够解析,也就是说你发送的请求,返回的数据类型必须是JSON数据,而且必须以JSON结尾…
搭建Spring环境(自行搭建): @RunWith注解指定使用springJunit的测试运行器 @ContextConfiguration注解指定测试用的spring配置文件的位置 import static org.junit.Assert.*; import javax.annotation.Resource; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.…
首先引入joda-time包.maven的dependency: <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.4</version> </dependency> 在Controller代码里: public String testMethod(@RequestParam @Date…
Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible. 旨在简化创建产品级的 Spring应用和服务.Spring Boot 引导优先于配置,它可以让你避免繁杂的配置,尽可能…
private DataSource datasource; private JdbcTemplate jdbcTemplateObject; //设置注入 public void setdatasource(DataSource ds) { this.datasource = ds; System.out.println("xxxxxxxxxxxxxxxxx"); System.out.println(ds); this.jdbcTemplateObject = new JdbcTe…
异步执行一般用来发送一些消息数据,数据一致性不要求太高的场景,对于spring来说,它把这个异步进行了封装,使用一个注解就可以实现. 用法 程序启动时开启@EnableAsync注解 建立新的类型,建立异步方法,为方法添加@Async注解 在业务代码中,@Autowired注入你的类型,使用它即可 我们可以关注到在配置task的时候,是有参数让我们配置线程池的数量的.因为这种实现方法,所以在同一个类中的方法调用,添加@async注解是失效的!,原因是当你在同一个类中的时候,方法调用是在类体内执行…
Filter 新建 TimeFilter @Component public class TimeFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("time filter init"); } @Override public void doFilter(ServletRequest s…
IDEA环境 win10 跑得刚刚,到xp系统就戈壁 报错 Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; 原因:tomcat版本引起 解决加入 <properties> <tomcat.version>7.0.69</tomcat.version></properties> 又报错 Ca…
1. 出现spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationProperties这个注解时,所以问题出现在ConfigurationProperties注解.2. 根据提示的not found in classpath,查询此注解的使用关于怎么指定classpath,进而查询location,spring boot1.5以上版本@ConfigurationPropert…