1、Idea 编译的时候找不到ServletContext
Exception:Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext
Remark:Idea 集成maven引入jar包时scope设置问题导致的,引入依赖provided,Idea 找不到当前相应的引用类
The Solution:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--<scope>provided</scope>--> 将scope注释,重新编译
</dependency>
2、Springboot @Configuration 获取不到@Value 值问题
Exception:Springboot @Configuration 获取不到@Value 值问题,配置是默认的application.properties
Remark:Springboot 与shiro整合导致@Value获取不到具体值,shiro生命周期bean导致该问题
@Bean
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
return new LifecycleBeanPostProcessor();
}
The Solution:
1、去掉当前的生命周期bean
2、在生命周期中添加static修饰符
//
@Bean
public static LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
return new LifecycleBeanPostProcessor();
}
3、Springboot 错误页面重载
Exception:Web端请求URL不存在,直接跳转/error错误页面。
Remark:/error当前页面无法通过controller来直接接收,查询相关资料,实现View的render方法,重载当前请求。
The Solution:
i、实现View的render方法,设置当前Http跳转请求,自定义为/global/error。
public class LmErrorView implements View {
@Override
public String getContentType() {
return "text/html";
}
@Override
public void render(Map<String, ?> map, HttpServletRequest httpServletRequest
, HttpServletResponse httpServletResponse) throws Exception {
httpServletRequest.getRequestDispatcher("/global/error").forward(httpServletRequest, httpServletResponse);
}
}
ii、自定义WebConfig 继承 WebMvcConfigurationSupport 重载error错误
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Bean("error")
public LmErrorView error() {
return new LmErrorView();
}
}
4、Springboot mapper 生成 pojo 区分大小写
Remark:mapper默认生成的都是小写,导致数据映射很不方便。
The Solution:在generatorConfiguration添加区分大小写标识,改成驼峰写法。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<properties resource="application.properties"/>
<context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.lmeng.generate.MyMapper"/>
</plugin>
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
</jdbcConnection>
<!-- 生成实体类所在包-->
<javaModelGenerator targetPackage="com.lmeng.pojo" targetProject="src/main/java"/>
<!-- 生成Mapper所在目录-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!-- 生成Mapper对应的java映射-->
<javaClientGenerator targetPackage="com.lmeng.mapper" targetProject="src/main/java"
type="XMLMAPPER"/>
<!--<table tableName="role"></table>-->
<table tableName="ticket">
<property name="useActualColumnNames" value="true"/> //添加区分大小写
</table>
</context>
</generatorConfiguration>