springmvc配置

SpringMvc 异常处理器

时光毁灭记忆、已成空白 提交于 2019-12-11 14:08:49
简介   SpringMvc 在处理请求过程中出现异常信息由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。 异常理解   异常包含 编译时异常 和 运行时异常 ,其中编译时异常也叫 预期异常 。运行时异常只有在项目运行的情况下才会发现,编译的时候不需要关心。   运行时异常,比如: 空指针异常、数组越界异常 ,对于这样的异常,只能通过程序员丰富的经验来解决和测试人员不断的严格测试来解决。    编译时异常 ,比如: 数据库异常、文件读取异常、自定义异常 等。对于这样的异常,必须使用 try catch 代码块或者 throws 关键字来处理异常。 异常处理思路   系统中异常包括两类: 预期异常(编译时异常)和运行时异常RuntimeException ,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段减少运行时异常的发生。   系统的dao、service、controller出现都通过throws Exception向上抛出,最后由SpringMvc前端控制器交给异常处理器进行异常处理,如下图: 全局范围只有一个异常处理器。 自定义异常类 第一步:CustomException.java package com.cyb.ssm.exception; /** * 自定义编译时异常 * * @author apple * */

SpringMVC拦截器

。_饼干妹妹 提交于 2019-12-11 11:40:09
SpringMVC拦截器类似于Servlet开发中的过滤器Filter,用于对处理进行预处理和后处理。 过滤器是servlet规范中的一部分,任何javaweb工程都可以使用。是在url-pattern中配置了/*之后,可以对 所有 要访问的资源拦截。(拦截所有) 拦截器是springMVC框架自己的,只是会拦截访问的控制器方法,如果访问的是jsp,html,image,js则不会拦截。 自定义拦截器必须实现:HandlerInterceptor接口。 来源: https://www.cnblogs.com/taiguyiba/p/12021469.html

【大厂面试真题350道】性能优化+微服务+并发编程+开源框架+分布式

两盒软妹~` 提交于 2019-12-11 08:28:37
一,性能优化专题: 1.tomcat性能调优 怎么给tomcat调优 如何加大comcat连接数 怎么加大tomcat的内存 tomcat中如何禁止列目录下的文件 Tomcat有几种部署方式 tomcat的优化经验 2.jvm性能优化专题: Java类加载过程 java内存分配 描述一下jvm加载class文件的原理机制 GC是什么?为什么要有GC? 简述java垃圾回收机制 如何判断一个对象是否存活?(或者GC对象的判定方法) 垃圾回收的优点和原理。并考虑2种回收机制。 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗? 有什么办法主动通知虚拟机进行垃圾回收? java中会存在内存泄漏吗,请简单描述。 深拷贝和浅拷贝 syatem,gc**() 和runtime,gc ()**会做做什么事情? finalize方法什么时候被调用?析构函数(finalizatinon)的目的是什么? 如何对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的? 串行(serial)收集器和吞吐量(throughout)收集器的区别是什么? 在Java中,对象什么时候可以被垃圾回收? 简述Java内存分配与回收策率以及minor GC和majorGC。 jvm的永久代中会发生垃圾回收吗? Java中垃圾收集的方法有哪些?

Maven下springmvc配置Redis

微笑、不失礼 提交于 2019-12-10 11:08:27
在完好的springmvc项目中导入 pom.xml < build > < plugins > < plugin > < groupId > org.apache.maven.plugins < /groupId > < artifactId > maven-compiler-plugin < /artifactId > < configuration > < source > 1.7 < /source > < target > 1.7 < /target > < /configuration > < /plugin > < /plugins > < /build > < dependencies > < dependency > < groupId > org.springframework < /groupId > < artifactId > spring-webmvc < /artifactId > < version > 5.0.6.RELEASE < /version > < /dependency > < dependency > < groupId > javax.servlet < /groupId > < artifactId > javax.servlet-api < /artifactId > < version > 4.0.1 < /version >

springMVC实现 如何 问WEB-INF下的JSP文件-- 01

为君一笑 提交于 2019-12-10 09:17:44
楼主是maven项目,平时若将jsp文件放入webapp(未放入WEB-INF下),tomcat访问时只需http://127.0.0.1:8080/myHadoop/login.jsp即http://主机地址:端口号/项目名/文件名.jsp 即可访问然而,若将jsp文件放在WEB-INF目录下,则访问无法通过地址栏的输入进行访问因此本文旨在介绍如何用springMVC实现访问WEB-INF下的JSP文件springMVC的导包什么的就不细说了项目结构如下:首先在spring-servlet.xml配置文件中进行内部视图解析器的配置: 首先在spring-servlet.xml配置文件中进行内部视图解析器的配置: 这里配置的含义为加载视图解析器,如当发起login请求时添加前缀"/WEB-INF/views/" 后缀“.jsp” 配置完成后在web.xml文件中进行加载: 接着,写一个控制跳转的controller(重要!) @RequestMapping("/") 含义 请求会调用userLogin()方法 返回的 login字符串 会被上文提到的内部视图解析器 进行前后缀拼接成 /WEB-INF/views/login.jsp 最终返回登录页面 来源: CSDN 作者: YU_XIN_JAVA 链接: https://blog.csdn.net/JAVA_YU_XIN

SpringMvc 多数据源实现配置

不羁的心 提交于 2019-12-10 03:48:32
1.继承AbstractRoutingDataSource。重写数据源切换方法 public class DynamicDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { // 从自定义的位置获取数据源标识 return DynamicDataSourceHolder.getDataSource(); } } public class DynamicDataSourceHolder { /** * 注意:数据源标识保存在线程变量中,避免多线程操作数据源时互相干扰 */ private static final ThreadLocal<String> THREAD_DATA_SOURCE = new ThreadLocal<String>(); public static String getDataSource() { return THREAD_DATA_SOURCE.get(); } public static void setDataSource(String dataSource) { THREAD_DATA_SOURCE.set(dataSource); } public static void

springmvc(3)controller配置汇总

纵然是瞬间 提交于 2019-12-10 02:14:44
1.通过url对应bean(通过ur直接找到对应的name或id的bean,此时url即为bean的name或id) <!--配置handlerMapping--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean id="/hello.do" class="com.app.controller.HelloController"/> 以上配置,访问hello.do就会寻找ID为/hello.do的bean,此方式只适合小型的应用。 2.为url分配bean(通过url找到对应的beanName,再通过beanName找到对应的bean) <!--配置handlerMapping--> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!--key对应url请求名 value对应处理器的id--> <prop key="/hello.do">helloController</prop> </props> </property> </bean> <bean id=

SpringMVC中AJAX请求出现406

爷,独闯天下 提交于 2019-12-09 18:28:19
这几天因为需要搭建SpringMVC,但是搭建完成以后发现使用 @ResponseBody的ajax无法访问,总是出现406的问题。 首先怀疑的是配置问题,经过查明,影响SpringMVC的 @ResponseBody注解的是: <mvc:annotation-driven />,我发现我的配置中存在这个注解。同时又使用Spring文档中的自动配置相关解析类的方式再进行测试,发现还是没有解决问题。 同时在网上找到相关问题,发现是缺失jackson的jar。 <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-lgpl</artifactId> <version>1.9.0</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-lgpl</artifactId> <version>1.9.0</version> </dependency> 于是加上该依赖,可是发现问题还是没有解决。 然后我就下载当前我使用的Spring版本的官方文档来看。 意外发现如下: Spring 4 requires the recent Hibernate

SpringMVC ajax请求406 错误解决方案

自闭症网瘾萝莉.ら 提交于 2019-12-09 18:08:02
SpringMVC ajax请求406 错误解决方案: 在springMVC配置文件中添加以下代码: <!--避免ajax请求出现406错误--> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="favorPathExtension" value="false"/> <property name="favorParameter" value="false"/> <property name="ignoreAcceptHeader" value="false"/> <property name="mediaTypes"> <value> atom = application/atom+xml html = text/html json = application/json * = */* </value> </property> </bean> <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" > <mvc:message-converters register

spring aop之父子容器

匆匆过客 提交于 2019-12-09 17:46:26
需求;项目对外提供接口,要求每个对外接口都要进行token认证。 解决办法:写一个token认证的工具类,在每个需要认证的接口方法开始的地方,调用工具类中的token认证方法。 问题:因为要满足指定条件才可以进行下一步,在接口中调用token认证的时候,要返回结果进行判断,不止是一行代码可以解决问题。 优化:使用aop 切面编程,在执行接口的内容之前,进行认证。通过注解的方式,织入到切点中。这样在需要进行认证的接口上只需要添加一个注解就可以token认证功能。 问题:基于Aspect注解实现该功能,在程序启动时,访问接口,直接进入接口,没有进入切面。 AuthController @RestController public class AuthController { @PostMapping("authentication") @TokenChecker public Result getToken(String username,String password){ return null; } } 切面类:execution 表达式没有任何问题。 @Aspect @Component public class TokenAspect {   //匹配指定类下的有指定注解的方法。只要在要切入的方法上加上注解就可以将该方法作为切入点。 @Pointcut("execution