【spring】spring3.x经验小结

spring3.x版本的一个重大改变就是模块化分包。原来的集成在spring核心中的许多功能都被模块化分解出来,使得spring-core的核心功能只剩下了两个,Ioc(依赖注入)和Aop(面向切面)。


aspectj:

spring依赖于aspectj是因为springaop,其实是对aspectj包装。所以在使用spring时,需要显示引入aspectj。且在Maven中引入spring时,aspectj不会做为它的依赖包引入。使用spring时千万要aspectj包,虽然看起来好像没有用到的

<!--pom.xml配置--><dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.4</version>
      <scope>compile</scope></dependency>

spring-jdbc:

在使用spring3.2.11版本的时候,发现原本内置在spring-corejdbc功能被分离出来。一个独立的spring-jdbc包,如果不引入的话。那么配置的数据源的配置,就会报错所以需要引入它:

<!-- spring JDBC -->
          <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-jdbc</artifactId>
               <version>3.2.11.RELEASE</version>
          </dependency>

spring-tx:

spring整合ORM框架时(mybatishibernate),使用tx标签配置事务管理器。这个tx的功能也被分离出一个独立的jar:

<!-- spring tx -->
          <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-tx</artifactId>
               <version>3.2.11.RELEASE</version>
          </dependency>

spring-mvc:

使用springweb项目,spring-mvc是必不可少。其实,不仅是web项目,只要用的mvc的架构,spring-mvc就是需要的。比如,常用的@service注解,虽然这是service层的注解,但是spring是将其整合到了spring-mvc的jar包。

<!-- spring MVC -->
          <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-webmvc</artifactId>
               <version>3.2.11.RELEASE</version>
          </dependency>

Maven引入顺序:

使用spring时,尽量将同类的jar包在maven配置中,放到一起。其中,尤为要注意的是,要把spring-core放在第一个。加载的其他jar包,要spring-core保持一致。这样才能面引入依赖时,出现引入多个版本冲突问题。这个问题,junit测试中反映不出来,但是服务器运行之时,因为服务器的加载机制,会偏向于加载同一个包中比较低版本的包。这样就会出现问题。


commons-fileupload:

commons-fileupload是用户web项目中常用的上传文件所需要用的jar。一般在项目构建的初期就会将此包引入,并且与spring整合配置。

<dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>

配置spring-mvc.xml:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
        <property name="maxUploadSize">
            <value>32505856</value><!-- 上传文件大小限制为31M,31*1024*1024 -->
        </property>
        <property name="maxInMemorySize">
            <value>4096</value>
        </property>
    </bean>

视图:

配置jsp视图在spring注解中不用加后缀:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" />

拦截问题:

使用spring拦截器拦截请求时,如果出现找不到url的时候,需要将配置的spirng拦截的servlet配置为拦截“/”:

<!-- spring mvc servlet -->
    <servlet>
        <description>spring mvc servlet</description>
        <servlet-name>springMvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <description>spring mvc 配置文件</description>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值