ssm三个框架的整合

 

 

创建一个mavenweb项目

使用maven创建一个web项目

手动在webapp下创建WEB-INF文件夹和web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://java.sun.com/xml/ns/javaee"

   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

   id="WebApp_ID" version="3.0">

导入依赖包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>

   <groupId>com.mhm.ssm</groupId>

   <artifactId>ssm</artifactId>

   <version>0.0.1-SNAPSHOT</version>

   <packaging>war</packaging>

   <build>

      <plugins>

        <plugin>

           <groupId>org.apache.maven.plugins</groupId>

           <artifactId>maven-compiler-plugin</artifactId>

           <version>3.6.0</version>

           <configuration>

              <source>1.8</source>

              <target>1.8</target>

           </configuration>

        </plugin>

      </plugins>

   </build>

  

   <properties>

      <spring-version>4.2.4.RELEASE</spring-version>

   </properties>

   <dependencies>

      <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>org.springframework</groupId>

        <artifactId>spring-core</artifactId>

        <version>${spring-version}</version>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-context</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-expression</artifactId>

        <version>${spring-version}</version>

      </dependency>

      <dependency>

        <groupId>org.apache.logging.log4j</groupId>

        <artifactId>log4j-api</artifactId>

        <version>2.3</version>

      </dependency>

      <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.12</version>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-aop</artifactId>

        <version>${spring-version}</version>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-test</artifactId>

        <version>${spring-version}</version>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-aspects</artifactId>

        <version>${spring-version}</version>

      </dependency>

      <dependency>

        <groupId>com.alibaba</groupId>

        <artifactId>druid</artifactId>

        <version>1.0.9</version>

      </dependency>

      <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>5.1.32</version>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-jdbc</artifactId>

        <version>${spring-version}</version>

      </dependency>

      <dependency>

        <groupId>com.fasterxml.jackson.core</groupId>

        <artifactId>jackson-annotations</artifactId>

        <version>2.1.4</version>

      </dependency>

      <dependency>

        <groupId>com.fasterxml.jackson.core</groupId>

        <artifactId>jackson-core</artifactId>

        <version>2.1.4</version>

      </dependency>

      <dependency>

        <groupId>com.fasterxml.jackson.core</groupId>

        <artifactId>jackson-databind</artifactId>

        <version>2.1.4</version>

      </dependency>

      <dependency>

        <groupId>commons-fileupload</groupId>

        <artifactId>commons-fileupload</artifactId>

        <version>1.3.1</version>

      </dependency>

      <dependency>

        <groupId>org.apache.commons</groupId>

        <artifactId>commons-io</artifactId>

        <version>1.3.2</version>

      </dependency>

      <dependency>

        <groupId>org.apache.tomcat</groupId>

        <artifactId>tomcat-servlet-api</artifactId>

        <version>7.0.47</version>

      </dependency>

      <dependency>

           <groupId>com.alibaba</groupId>

           <artifactId>druid</artifactId>

           <version>1.0.9</version>

        </dependency>

        <dependency>

           <groupId>mysql</groupId>

           <artifactId>mysql-connector-java</artifactId>

           <version>5.1.32</version>

        </dependency>

        <dependency>

           <groupId>org.mybatis</groupId>

           <artifactId>mybatis-spring</artifactId>

           <version>1.2.2</version>

        </dependency>

        <!-- mybatis核心包 -->

        <dependency>

           <groupId>org.mybatis</groupId>

           <artifactId>mybatis</artifactId>

           <version>3.2.8</version>

        </dependency>

        <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-jdbc</artifactId>

           <version>4.2.4.RELEASE</version>

        </dependency>

   </dependencies>

 

</project>

 

创建目录结构

在逆向工程中生成映射文件和pojo

粘贴到自己的项目中

与持久层连接

创建db.properties

mysql.driver=com.mysql.jdbc.Driver

mysql.url=jdbc:mysql://localhost:3306/test

mysql.username=root

mysql.password=root

 

创建连接池

<context:property-placeholder location="classpath:config/db.properties" />

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

      <property name="driverClassName" value="${mysql.driver}" />

      <property name="url" value="${mysql.url}" />

      <property name="username" value="${mysql.username}" />

      <property name="password" value="${mysql.password}" />

   </bean>

创建与mybatis的关联sqlSessionFactory

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

      <property name="dataSource" ref="dataSource" />

      <!-- <property name="configLocation" value="classpath: mybatis/mybatis.xml"/> -->

      <property name="mapperLocations" value="classpath:../mapper/*.xml"/>

   </bean>

配置事务

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

      <property name="basePackage" value="com.oracle.mapper"></property>

   </bean>

   <!-- 事务 -->

   <bean id="transactionManager"

      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

      <property name="dataSource" ref="dataSource"></property>

   </bean>

动态代理

<!-- 动态代理 -->

   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

      <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>

      <property name="basePackage" value="com.oracle.mapper"></property>

   </bean>

 

驱动和注解扫描

<tx:annotation-driven transaction-manager="transactionManager"/>

   <aop:aspectj-autoproxy/>

<context:component-scan base-package="com.oracle.*"/>

与控制层连接

配置springmvc.xml

<context:component-scan base-package="com.oracle.*"/>

        <mvc:annotation-driven />

        <mvc:resources location="/css/" mapping="/css/**"/>

        <mvc:resources location="/js/" mapping="/js/**"/>

        <mvc:resources location="/image/" mapping="/image/**"/>

        <mvc:resources location="/upload/" mapping="/upload/**"/>

配置web.xml

<!-- 监听器 -->

   <listener>

      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

   </listener>

   <context-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>classpath:spring/spring-tx.xml</param-value>

   </context-param>

   <!-- 过滤器 -->

   <filter>

      <filter-name>CharacterEncodingFilter</filter-name>

      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

      <init-param>

        <param-name>encoding</param-name>

        <param-value>UTF-8</param-value>

      </init-param>

   </filter>

   <filter-mapping>

      <filter-name>CharacterEncodingFilter</filter-name>

      <url-pattern>/</url-pattern>

   </filter-mapping>

 

   <!-- 核心控制器 -->

   <servlet>

      <servlet-name>DispatcherServlet</servlet-name>

      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

      <init-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring/*.xml</param-value>

      </init-param>

      <load-on-startup>1</load-on-startup>

   </servlet>

 

   <servlet-mapping>

      <servlet-name>DispatcherServlet</servlet-name>

      <url-pattern>/</url-pattern>

   </servlet-mapping>

控制器

ResponseEntity<T>

作用在方法上,使得方法可以返回给前端状态码和提示信息

T:为返回的提示信息,可以是String,也可以是自定义的结果集

@RestController

@RequestMapping("/goods")

public class GoodsController {

   @Autowired

   private GoodsService goodsService;

 

   @RequestMapping(value = "/add", method = RequestMethod.POST)

   public ResponseEntity<Result> add(@RequestBody Goods goods) {

      goodsService.add(goods);

      return new ResponseEntity<Result>(new Result(true, "添加成功"), HttpStatus.OK);

   }

}

为了避免写jsp文件,发送表单数据,使用Insomnia工具,发送json数据,转换为对象

链接: https://pan.baidu.com/s/1vLJ9SXvEfjxwFsz6_21BIg 提取码: 53i5

自定义结果集

public class Result {

   private boolean success;

   private String message;

 

   public boolean isSuccess() {

      return success;

   }

 

   public void setSuccess(boolean success) {

      this.success = success;

   }

 

   public String getMessage() {

      return message;

   }

 

   public void setMessage(String message) {

      this.message = message;

   }

 

   public Result(boolean success, String message) {

      super();

      this.success = success;

      this.message = message;

   }

 

   public Result() {

      // TODO Auto-generated constructor stub

   }

}

 

测试

 

原文地址:https://www.cnblogs.com/mhm111/p/11428741.html