从零开始SSM框架搭建

欢迎访问我的个人博客:www.ifueen.com

SSM框架搭建

文章目录

  • SSM框架搭建
    • 导包
    • 配置核心文件
    • 准备三层架构

导包

创建好web项目,然后导入相应的jar包

format_png

或者在pom.xml中加入依赖

  1. <properties>
  2. <!-- spring版本号 -->
  3. <spring.version>4.0.2.RELEASE</spring.version>
  4. <!-- mybatis版本号 -->
  5. <mybatis.version>3.1.1</mybatis.version>
  6. <!-- log4j日志文件管理包版本 -->
  7. <slf4j.version>1.7.7</slf4j.version>
  8. <log4j.version>1.2.17</log4j.version>
  9. </properties>
  10. <dependencies>
  11. <dependency>
  12. <groupId>junit</groupId>
  13. <artifactId>junit</artifactId>
  14. <version>4.11</version>
  15. <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
  16. <scope>test</scope>
  17. </dependency>
  18. <!-- spring核心包 -->
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-core</artifactId>
  22. <version>${spring.version}</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework</groupId>
  26. <artifactId>spring-web</artifactId>
  27. <version>${spring.version}</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-oxm</artifactId>
  32. <version>${spring.version}</version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework</groupId>
  36. <artifactId>spring-tx</artifactId>
  37. <version>${spring.version}</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework</groupId>
  41. <artifactId>spring-jdbc</artifactId>
  42. <version>${spring.version}</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-webmvc</artifactId>
  47. <version>${spring.version}</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework</groupId>
  51. <artifactId>spring-aop</artifactId>
  52. <version>${spring.version}</version>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework</groupId>
  56. <artifactId>spring-context-support</artifactId>
  57. <version>${spring.version}</version>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework</groupId>
  61. <artifactId>spring-test</artifactId>
  62. <version>${spring.version}</version>
  63. </dependency>
  64. <!-- mybatis核心包 -->
  65. <dependency>
  66. <groupId>org.mybatis</groupId>
  67. <artifactId>mybatis</artifactId>
  68. <version>${mybatis.version}</version>
  69. </dependency>
  70. <!-- mybatis/spring包 -->
  71. <dependency>
  72. <groupId>org.mybatis</groupId>
  73. <artifactId>mybatis-spring</artifactId>
  74. <version>1.1.0</version>
  75. </dependency>
  76. <!-- 导入java ee jar 包 -->
  77. <dependency>
  78. <groupId>javax</groupId>
  79. <artifactId>javaee-api</artifactId>
  80. <version>7.0</version>
  81. </dependency>
  82. <!-- 导入Mysql数据库链接jar包 -->
  83. <dependency>
  84. <groupId>mysql</groupId>
  85. <artifactId>mysql-connector-java</artifactId>
  86. <version>5.1.30</version>
  87. </dependency>
  88. <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
  89. <dependency>
  90. <groupId>commons-dbcp</groupId>
  91. <artifactId>commons-dbcp</artifactId>
  92. <version>1.2.2</version>
  93. </dependency>
  94. <!-- JSTL标签类 -->
  95. <dependency>
  96. <groupId>jstl</groupId>
  97. <artifactId>jstl</artifactId>
  98. <version>1.2</version>
  99. </dependency>
  100. <!-- 日志文件管理包 -->
  101. <!-- log start -->
  102. <dependency>
  103. <groupId>log4j</groupId>
  104. <artifactId>log4j</artifactId>
  105. <version>${log4j.version}</version>
  106. </dependency>
  107. <!-- 格式化对象,方便输出日志 -->
  108. <dependency>
  109. <groupId>com.alibaba</groupId>
  110. <artifactId>fastjson</artifactId>
  111. <version>1.1.41</version>
  112. </dependency>
  113. <dependency>
  114. <groupId>org.slf4j</groupId>
  115. <artifactId>slf4j-api</artifactId>
  116. <version>${slf4j.version}</version>
  117. </dependency>
  118. <dependency>
  119. <groupId>org.slf4j</groupId>
  120. <artifactId>slf4j-log4j12</artifactId>
  121. <version>${slf4j.version}</version>
  122. </dependency>
  123. <!-- log end -->
  124. <!-- 映入JSON -->
  125. <dependency>
  126. <groupId>org.codehaus.jackson</groupId>
  127. <artifactId>jackson-mapper-asl</artifactId>
  128. <version>1.9.13</version>
  129. </dependency>
  130. <!-- 上传组件包 -->
  131. <dependency>
  132. <groupId>commons-fileupload</groupId>
  133. <artifactId>commons-fileupload</artifactId>
  134. <version>1.3.1</version>
  135. </dependency>
  136. <dependency>
  137. <groupId>commons-io</groupId>
  138. <artifactId>commons-io</artifactId>
  139. <version>2.4</version>
  140. </dependency>
  141. <dependency>
  142. <groupId>commons-codec</groupId>
  143. <artifactId>commons-codec</artifactId>
  144. <version>1.9</version>
  145. </dependency>
  146. </dependencies>
  147. <build>
  148. <finalName>ssm01</finalName>
  149. </build>

配置核心文件

applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  10. ">
  11. <!-- 扫描service层 -->
  12. <context:component-scan base-package="com.ifueen.ssm.service"></context:component-scan>
  13. <!-- 配置数据库 -->
  14. <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
  15. <!--创建dataSource-->
  16. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  17. <property name="driverClassName" value="${jdbc.driverClassName}" />
  18. <property name="url" value="${jdbc.url}" />
  19. <property name="username" value="${jdbc.username}" />
  20. <property name="password" value="${jdbc.password}" />
  21. </bean>
  22. <!-- SqlSessionFactory-->
  23. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  24. <property name="dataSource" ref="dataSource"></property>
  25. <property name="mapperLocations" value="classpath:com/ifueen/ssm/mapper/*Mapper.xml"></property>
  26. <property name="typeAliasesPackage">
  27. <value>
  28. com.ifueen.ssm.domain
  29. com.ifueen.ssm.query
  30. </value>
  31. </property>
  32. </bean>
  33. <!-- 扫面mapper 产生实现类 -->
  34. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  35. <property name="basePackage" value="com.ifueen.ssm.mapper"></property>
  36. </bean>
  37. <!-- 配置事务 -->
  38. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  39. <property name="dataSource" ref="dataSource" />
  40. </bean>
  41. <!--开启事务注解的支持,默认会去找一个名称叫做transactionManager的事务管理器 -->
  42. <tx:annotation-driven transaction-manager="transactionManager" />
  43. </beans>

applicationContext-mvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  11. <!--扫描controller-->
  12. <context:component-scan base-package="com.ifueen.ssm.controller" />
  13. <!--静态资源处理-->
  14. <mvc:default-servlet-handler />
  15. <!--识别@requestMapper等注解支持-->
  16. <mvc:annotation-driven />
  17. <!--配置视图解析器-->
  18. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  19. <property name="prefix" value="/WEB-INF/views/" />
  20. <property name="suffix" value=".jsp" />
  21. </bean>
  22. </beans>

web.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
  6. version="3.1">
  7. <!-- 配置Spring -->
  8. <listener>
  9. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  10. </listener>
  11. <context-param>
  12. <param-name>contextConfigLocation</param-name>
  13. <param-value>classpath:applicationContext.xml</param-value>
  14. </context-param>
  15. <!--1.2 配置springmvc-->
  16. <servlet>
  17. <servlet-name>springmvc</servlet-name>
  18. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  19. <init-param>
  20. <param-name>contextConfigLocation</param-name>
  21. <param-value>classpath:applicationContext-mvc.xml</param-value>
  22. </init-param>
  23. <load-on-startup>1</load-on-startup>
  24. </servlet>
  25. <servlet-mapping>
  26. <servlet-name>springmvc</servlet-name>
  27. <!--/*会拦截所有包括jsp-->
  28. <!--/会拦截所有但是不包含jsp-->
  29. <url-pattern>/</url-pattern>
  30. </servlet-mapping>
  31. <!--
  32. post请求乱码解决
  33. get请求实在tomcat猫中配置
  34. -->
  35. <filter>
  36. <filter-name>EncodingFilter</filter-name>
  37. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  38. <init-param>
  39. <param-name>encoding</param-name>
  40. <param-value>utf-8</param-value>
  41. </init-param>
  42. </filter>
  43. <filter-mapping>
  44. <filter-name>EncodingFilter</filter-name>
  45. <url-pattern>/*</url-pattern>
  46. </filter-mapping>
  47. </web-app>

db.properties

  1. jdbc.driverClassName=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql:///mybatis
  3. jdbc.username=root
  4. jdbc.password=123456

准备三层架构

准备好相应的三层架构进行测试

format_png 1

Product

  1. package com.ifueen.ssm.domain;
  2. public class Product {
  3. private Long id;
  4. private String productName;
  5. //getset
  6. }

Service层实现类

  1. package com.ifueen.ssm.service.impl;
  2. import com.ifueen.ssm.domain.Product;
  3. import com.ifueen.ssm.mapper.ProductMapper;
  4. import com.ifueen.ssm.service.IProductService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import org.springframework.transaction.annotation.Propagation;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import java.util.List;
  10. @Service
  11. @Transactional(propagation = Propagation.SUPPORTS,readOnly = true)
  12. public class ProductServiceImpl implements IProductService {
  13. @Autowired
  14. private ProductMapper productMapper;
  15. @Override
  16. public List<Product> findAll() {
  17. return productMapper.findAll();
  18. }
  19. }

mapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!-- namespace表示命名空间 保证它是唯一 cn.itsource.mybatis.dao.impl.ProductDaoImpl + id="getUserById"-->
  6. <mapper namespace="com.ifueen.ssm.mapper.ProductMapper">
  7. <!-- id名称和ProductMapper接口方法一样-->
  8. <select id="findAll" resultType="product">
  9. select * from product
  10. </select>
  11. </mapper>

Controller类进行测试

  1. package com.ifueen.ssm.controller;
  2. import com.ifueen.ssm.domain.Product;
  3. import com.ifueen.ssm.service.IProductService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.ResponseBody;
  8. import java.util.List;
  9. @Controller
  10. @RequestMapping("/product")
  11. public class ProductController {
  12. @Autowired
  13. private IProductService productService;
  14. @RequestMapping("/list")
  15. @ResponseBody
  16. public List<Product> queryAll(){
  17. return productService.findAll();
  18. }
  19. }

然后就可以开启tomcat通过服务器访问了

发表评论

表情:
评论列表 (有 0 条评论,48人围观)

还没有评论,来说两句吧...

相关阅读