Java 框架的一些文件配置

 哈喽~大家好,之前已经记录了Spring、SpringMvc、Mybatis等框架的学习,对于这些框架的 xx 文件配置还是很多的,所以专门写了一篇关于一些常用配置的文,也为后面的SpringBoot 作出铺垫。

 个人主页:个人主页​​​​​             

 系列专栏:【Java框架】   

与这篇相关的文章:            

 【JAVAEE框架】MyBatis与Spring的整合(上) 【JAVAEE框架】MyBatis与Spring的整合(上)_程序猿追的博客-CSDN博客
【JAVAEE框架】浅谈 AOP 及代码实现 【JAVAEE框架】浅谈 AOP 及代码实现_程序猿追的博客-CSDN博客
【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP 【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP_程序猿追的博客-CSDN博客

目录

一、MyBatis 文件配置

1、动态SQL 

二、Spring 文件配置

1、SqlSessionFactoryBean

2、MapperScannerConfigurer

3、InternalResourceViewResolver 视图解析器

4、CommonsMultipartResolver 文件上传解析器

5、ConversionServiceFactoryBean

三、SpringMvc 文件配置

1、StringHttpMessageConverter

2、配置springmvc拦截器

3、如何自定义拦截器?

4、通过interceptor类设置拦截器

四、web.xml 文件配置

1、dispatcherServlet: 视图解析器


一、MyBatis 文件配置

configuration 配置文件的根元素
settings 定义mybatis的一些全局属性
​
    
        
        
        
        
    
    
PARTIAL[默认],FULL[全匹配],NONE[不匹配]
logImpl 是打印日志,日志可以帮我们把重要的信息输出出来,这样出错的时候,可以借助日志可以查看哪里有问题
​
jdbcTypeForNull
原因:mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,在执行SQL时MyBatis会自动通过对象中的属性给SQL中参数赋值,它会自动将Java类型转换成数据库的类型。而一旦传入的是null它就无法准确判断这个类型应该是什么,就有可能将类型转换错误,从而报错。
解决方法:使用  对参数进行NULL判断,针对这些可能为空的字段,通过jdbcType属性手动指定其转换时用到的类型。一般情况下,我们没有必要对每个字段去识别/判断它是否可以为空,而是将所有的字段都当做可以为空,全部手动设置转换类型。
​
​

Java 框架的一些文件配置_第1张图片

 


    
        
    

1、动态SQL 

    
    在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType、resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声明该类型的全路径,java.lang.String,或者 cn.com.mybatis.pojo.User, 这时就可以通过 typeAliases 别名来设置,简化复杂度。
    eg:没有配置typeAliases的动态sql
​
配置了之后
直接减少 resultType 里面的代码量

配置某某插件
​
eg:

    
        
            
        
    
 
  

二、Spring 文件配置

Spring 引入外部文件


    
-->

或者以这种形式

说明

只需要在spring的配置文件里添加一句:?即可,
这里location值为参数配置文件的位置,参数配置文件通常放在src目录下,而参数配置文件的格式跟java通用的参数配置文件相同,即键值对的形式

配置数据源(记得要导入pom依赖)


    
    
    
    

1、SqlSessionFactoryBean



    
         
        
        
            
                classpath:com/itxzw/*/dao/mapper/*.xml
            
        
    

2、MapperScannerConfigurer



  
 

    
        
    


    
        
    

    

    
        
        
    

3、InternalResourceViewResolver 视图解析器


        
        
    
    
    当处理器返回“index”时,InternalResourceViewResolver解析器会自动添加前缀和后缀:/WEB-INF/jsp/index.jsp
    如果要使用 .html文件的话,要加上
    
    

SimpleMappingExceptionResolver的作用:对所有的异常进行统一处理,他将异常类名映射为视图名,即发生异常时,使用对应的视图显示异常;

简称页面不显示报错信息,只显示一个自定义的错误页面,如:“您访问的页面去了火星了,呜呜呜”等类似的页面



    
    
        
            error
        
    

4、CommonsMultipartResolver 文件上传解析器




    
    
    
    

MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。如果请求数据中包含文件,则调用 MultipartResolver 的 resolveMultipart() 方法对请求的数据进行解析,然后将文件数据解析成 MultipartFile 并封装在 MultipartHttpServletRequest (继承了 HttpServletRequest) 对象中,最后传递给 Controller

5、ConversionServiceFactoryBean

ConversionServiceFactoryBean 格式转换器, 用于SpringMVC 绑定的格式转换


    
        
            
                
            
        
    

这里是时间转换的格式效果,设置好了之后我们就要把它配置到你的注解驱动属性里面去

eg:

    
    
    

        
            
            
                
                    
                        application/json;charset=utf8
                    
                
            
​
            
            
                
                    
                        application/json;charset=utf8
                    
                
                
                    
                        
                            
                                
                                WriteDateUseDateFormat
                                
                                DisableCircularReferenceDetect
                            
                        
                    
                
            
​
        
    

三、SpringMvc 文件配置

1、StringHttpMessageConverter

SpringMVC使用@ResponseBody注解,可以直接返回字符串,非常适合于响应ajax请求。但是,有时候直接返回时,会出现乱码问题。防止乱码的产生,就要加上StringHttpMessageConverter。同时设置 ajax 的消息转换器——FastJson

2、配置springmvc拦截器

HandlerInterceptorAdapter

Interceptor定义: 拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于JAVA的反射机制

1.拦截器(Interceptor)执行顺序:

  1. 请求到达 DispatcherServlet

  2. DispatcherServlet 发送至 Interceptor ,执行 preHandle

  3. 请求达到 Controller

  4. 请求结束后,postHandle 执行

2.拦截器(Interceptor)和过滤器(Filter)的执行顺序 过滤前->拦截前->Action处理->拦截后->过滤后

3、如何自定义拦截器?

public class LoginInterceptor extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        HttpSession session = request.getSession();
        Object loginUser = session.getAttribute("loginUser");

        if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){
            if (loginUser == null){
                response.setHeader("Content-Type","text/plain;charset=utf8");
                response.getWriter().write("FAILURE");
                return false;
            }
        }

        if (loginUser == null){
            response.sendRedirect(request.getContextPath() + "/login.jsp");
            return false;
        }

        return true;
    }
}

继承与 HandlerInterceptorAdapter 这个类,重写 preHandle 方法,并且拦截页面请求的方式(扩: 使用XMLHttpRequest (XHR)对象可以与服务器交互。您可以从URL获取数据,而无需让整个的页面刷新。这使得Web页面可以只更新页面的局部,而不影响用户的操作。XMLHttpRequest在 ajax 编程中被大量使用。)

我们这个自定义的类叫 LoginInterceptor ,所以在SpringMVC 里面的配置是:


    
        
            
            
            
            
        
    

4、通过interceptor类设置拦截器






    

四、web.xml 文件配置


    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
        contextConfigLocation
        classpath:springMVC.xml
    



    dispatcherServlet
    /



    
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        utf8
    



    characterEncodingFilter
    /*



    contextConfigLocation
    classpath:springContext.xml



    org.springframework.web.context.ContextLoaderListener

1、dispatcherServlet: 视图解析器

characterEncodingFilter 是spring内置过滤器的一种,用来指定请求或者响应的编码格式。

contextConfigLocation: 在web.xml中通过contextConfigLocation配置spring,contextConfigLocation参数定义了要装入的 Spring 配置文件。

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

你可能感兴趣的:(Java框架知识及其项目,spring,mybatis,spring,boot,java)