Alex_TD

Springmvc===整合问题总结

1. 过滤字符编码 org.spring

 <filter>
        <filter-name>characterEncoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf8</param-value>       ///utf8 格式字符串
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncoding</filter-name>
        <url-pattern>/*</url-pattern>               //
    </filter-mapping>

2.context:property-placeholder  location=classpath:*.properties  

3.同一个项目的所有spring配置文件xml   Facets 在同一目录里

4.要启动数据库 

5.mabatis configurationlocation   value="classpath:*.xml"

6.Idea webmvc 项目要将jar包导入输出Artifacets===》output 里

7.context:annotation-config   启用mvc自动装配注解, context:component-scan  base-package="com..."     还有个什么自动代理来着? aop? 

8.空指针,spring bean 使用要装配autowired

7.Spring中存在大量设计模式:都有相应的后缀提示:

如adpater  适配器模式:controllerhandlerapadter   

configer 配置:characterencodingconfiger    webmvcconfiger   MapperScanconfiger

builder 建造者模式: sqlsessionfactory().builder() builder设计模式 分解建造模块,每个模块都是一个建造对象,可以无序组装建造模块,组成需要的建造对象。

factory 工程模式:是对同一类对象的建造,所有模式都和接口实现有关,抽象类增加方法,  appliactioncontext.getbean(..)   Class.newInstance(_)   Proxy.newInstance()创建代理对象,可以创建任意类型的代理对象, Sqlsession.getConnection(...)   calendar.getInstance()  抽象类实现创建日期对象。

接口对象默认实现,可在接口中调用其他方法。

if语句 并列式  和if  else if   else    的时间复杂度不一样,一个是每一个if都执行,一个是if判断满足条件就不会执行其他的else 了

8. controller 中方法的返回值 视图,跳转网址  返回值   地址栏的地址变化

9.  tx:advice 对应XML配置文件头引用的链接,一定看好,引用的时候引用的哪个,tx:adivce 提示有两个 内容还一样,要选不是cache的哪个,不然虽然一样,但是还是不会成功

判断是否引对,可以看是不是灰色的不是灰色的是绿色的了就成功了。

通配符的匹配很全面, 但无法找到元素 'tx:advice' 的声明

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/tx
         http://www.springframework.org/schema/tx/spring-tx.xsd 
         http://www.springframework.org/schema/aop
         https://www.springframework.org/schema/aop/spring-aop.xsd">

 10.servlet 配置,路径解析处理handler  conroller控制器适配处理   视图解析viewresolver     注解 扫描   放行资源   mvc context   

      数据库配置 mybaits  源  工厂 属性   自动创建dao的代理对象mapperscanhandler            服务层接口注册 

事务管理有spring统一,基于aop 对method方法的增强,原理是动态代理Proxy和CGLIB  对应接口 和方法。 advice  pre  before  after around  pointcut execution   ****  aspect包  (/*  /**)

tx标签     (mvc标签 注解)  bean的DI  D创建 方式   I 方式:spring去分配使用。

SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@63787180] was not registered for synchronization because synchronization is not active。

JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@4f1bfe23 [wrapping: com.mysql.cj.jdbc.ConnectionImpl@e19bb76]] will not be managed by Spring。

springmvc+c3p0+mybatis-spring  不配置事务管理,会提示不是异步,异步没激活,JDBC连接没有被spring管理,原因:spring声明式事务对调用的数据库方法。。拦截管理。

  数据库查询 DDL DML DQL  DCL    

   handlerInterceptor 接口拦截器 原理aop 的 false  拦截 不执行其他拦截器  true 不拦截 继续下面的拦截器  所以拦截器有顺序(SpringMVC 专有)需要在spring中配置注册。

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path=""/>
<
</mvc:interceptor>
</mvc:interceptors>
接口点 advice:

Spring AOP 提供了 Advice 接口多个子接口来支持增强。如下所示:

接口 MethodBeforeAdvice:在目标方法调用之前调用的Advice;

接口 AfterReturningAdvice:在目标方法调用并返回之后调用的Advice;

接口 MethodInterceptor:在目标方法的整个执行前后有效,并且有能力控制目标方法的执行;

接口 ThrowsAdvice:在目标方法抛出异常时调用的Advice;

posted on 2020-02-23 22:25  Alex_TD  阅读(292)  评论(0编辑  收藏  举报