Springboot:龙游潜底招虾戏

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章