Spring4.X基本配置(持续更新)

Spring4.X 基本配置(持续更新)

这一段时间初步学习了spring的相关入门知识,下面根据本人进度总结一下spring的基本配置,假设你和我一样是刚入门的新手级别.本人既然是刚入门水平有限,难免会有理解不当表述不当等错误,本人发现错误会立刻改正.本文内容是根据实践总结出来的,只摆结论不解释,本人会根据学习进度持续更新,这些都是入门级别的配置.

Spring系列相关的常用Maven Dependency

1.Spring基本入门配置中常用到的依赖

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>

2.SpringAop常用到依赖(如果用到aspectJ)

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjtools</artifactId>
      <version>${aspectj.version}</version>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>${aspectj.version}</version>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>${aspectj.version}</version>
    </dependency>

3.数据库方面常用依赖(如果用到SpringJdbc,另外数据库连接池可以选择其他,dbcp2貌似至少需要jdk7版本)

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <version>${dbcp2.version}</version>
    </dependency>

4.SpringMVC常用依赖(如果仍然使用jsp作view就需要引入jstl)

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>${servlet.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

5.上传文件常用依赖

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.3.2</version>
    </dependency>

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

6.jackson依赖(Spring mvc用到json方面)

   <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>${jackson.version}</version>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>${jackson.version}</version>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>

7.SpringMVC中的数据检验validation

    <!-- JSR-303 validation -->
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>2.0.1.Final</version>
    </dependency>

    <!-- hibernate validator -->
    <dependency>
      <groupId>org.hibernate.validator</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>6.0.9.Final</version>
    </dependency>

XML文件常用配置(记得要引入相对应的jar包)

  1. bean标签:定义一个bean让spring容器托管,默认单例.例如<bean id="user" class="com.spring.bean.User" p:userName="小明" p:password="123"/>.

  2. 包扫描(结合注解@Component等):<context:component-scan base-package="com.spring.service"/>.

  3. 使用aspectJ注解实现aop:<aop:aspectj-autoproxy/>, 结合包扫描和注解.

  4. 数据库相关:(持久化技术使用SpringJDBC,数据库连接池使用dbcp2,注意相关依赖)
    定义数据源

<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id = "dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close" p:driverClassName="${jdbc.driver}"
          p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}"/>

结合jdbc.properties文件.(例如我的是放在资源根目录resources下)

# jdbc.properties
# dbcp2

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/spring?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

由于使用到jdbcTemplate:<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource" />

5.SpringMVC相关配置:
配置web.xml(我其中的配置是加载resources下spring文件夹中的所有符合正则表达式demo-*.xml的文件,我有多个xml文件都需要加载,例如service和dao层就有分别的两个xml文件;所有请求的url都会被DispatcherServlet所拦截)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <servlet>
    <servlet-name>demo</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/demo-*.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>demo</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

简单配置webApplicationContext(例如就是我的resources下spring文件夹中的demo-web.xml文件)

    <mvc:annotation-driven/>
    <mvc:default-servlet-handler/>

如果使用到jsp作为模板,还需要定义具体模板资源存放位置,例如我存放的位置是/WEB-INF/jsp/,那么配置:<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
.记得还需要加入扫描相关类包的语句.

6.基于注解的声明式事务配置:
①在对应bean中加入@Transactional注解(在类上或者在方法上)
②xml文件配置好相关的DataSource和TransactionManager
③xml文件中配置<tx:annotation-driven transaction-manager="xxxx"

7.Spring MVC拦截器配置:
①一个实现了 HandlerInterceptor接口的类,里面可以进行请求或者返回报文进行拦截(类似filter)
②在你的webApplicationContext.xml文件中注册你的类

    <!-- intercepter -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="XXX" />
            <bean class="XXX"/>
        </mvc:interceptor>
    </mvc:interceptors>

8.返回json
在对应方法上加上produces和@ResponseBody

 @RequestMapping(value = "/subLogin", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public JsonResult<?> subLogin(User user, String s){
    // your code
    }

你可以像我一样自己指定返回json的结构,例如我自己编写一个JsonResult<T>类,返回的时候Spring会为你搞定一切

猜你喜欢

转载自blog.csdn.net/qq_37993487/article/details/80474062