简单的搭建一个SSM项目

一直以来都想去写一写博文,记录一下自己的成长过程,因为拖延症一直都没有去写,而以往学过的知识,不用的就慢慢遗忘了.

我是一个菜鸟,但有一个大牛梦,若是有不妥当之处,还望大家不吝赐教!

1.添加jar

 1 <dependency>
 2         <groupId>org.springframework</groupId>
 3         <artifactId>spring-context</artifactId>
 4         <version>5.0.6.RELEASE</version>
 5     </dependency>
 6
 7     <dependency>
 8         <groupId>org.springframework</groupId>
 9         <artifactId>spring-core</artifactId>
10         <version>5.0.6.RELEASE</version>
11     </dependency>
12
13     <dependency>
14         <groupId>org.springframework</groupId>
15         <artifactId>spring-beans</artifactId>
16         <version>5.0.6.RELEASE</version>
17     </dependency>
18
19     <dependency>
20         <groupId>org.springframework</groupId>
21         <artifactId>spring-web</artifactId>
22         <version>5.0.6.RELEASE</version>
23     </dependency>
24
25     <dependency>
26         <groupId>org.springframework</groupId>
27         <artifactId>spring-webmvc</artifactId>
28         <version>5.0.6.RELEASE</version>
29     </dependency>
30
31     <dependency>
32         <groupId>org.springframework</groupId>
33         <artifactId>spring-aop</artifactId>
34         <version>5.0.6.RELEASE</version>
35     </dependency>
36
37     <dependency>
38         <groupId>org.springframework</groupId>
39         <artifactId>spring-jdbc</artifactId>
40         <version>5.0.5.RELEASE</version>
41     </dependency>
42
43     <dependency>
44         <groupId>org.springframework</groupId>
45         <artifactId>spring-tx</artifactId>
46         <version>5.0.5.RELEASE</version>
47     </dependency>
48
49     <!-- Tomcat服务器 -->
50     <dependency>
51         <groupId>org.apache.tomcat</groupId>
52         <artifactId>tomcat-catalina</artifactId>
53         <version>8.5.2</version>
54     </dependency>
55
56      <!-- mybatis -->
57      <dependency>
58         <groupId>org.mybatis</groupId>
59         <artifactId>mybatis</artifactId>
60         <version>3.4.5</version>
61     </dependency>
62
63     <dependency>
64         <groupId>org.mybatis</groupId>
65         <artifactId>mybatis-spring</artifactId>
66         <version>1.3.1</version>
67     </dependency>
68     <!-- mysql -->
69     <dependency>
70         <groupId>mysql</groupId>
71         <artifactId>mysql-connector-java</artifactId>
72         <version>8.0.11</version>
73     </dependency>
74     <!--c3p0  -->
75     <dependency>
76         <groupId>com.mchange</groupId>
77         <artifactId>c3p0</artifactId>
78         <version>0.9.5.2</version>
79     </dependency>
80
81     <dependency>
82         <groupId>javax.servlet</groupId>
83         <artifactId>jstl</artifactId>
84         <version>1.2</version>
85     </dependency>

2.项目包结构图

3.代码

扩展AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动配置DisPatcher-Servlet和Spring应用上下文,Spring的应用上下文会位于程序的Servlet上下文之中

1.MyWebMVCInitializer 类

 1 package org.great.config;
 2
 3 import javax.servlet.Filter;
 4
 5 import org.springframework.web.filter.CharacterEncodingFilter;
 6 import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
 7
 8 public class MyWebMVCInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
 9
10     @Override
11     protected Class<?>[] getRootConfigClasses() {
12         return new Class[] {RootConfig.class};
13     }
14
15     @Override
16     protected Class<?>[] getServletConfigClasses() {
17         return new Class[] {WebConfig.class};
18     }
19
20
21     @Override
22     protected String[] getServletMappings() {
23         return new String[] {"*.do"};
24     }
25
26     /**
27      * 编码过滤器
28      */
29     @Override
30     protected Filter[] getServletFilters() {
31         return new Filter[] {new CharacterEncodingFilter("utf-8")};
32     }
33 }

2.WebConfig类

 1 package org.great.config;
 2
 3 import org.springframework.context.annotation.Bean;
 4 import org.springframework.context.annotation.ComponentScan;
 5 import org.springframework.context.annotation.Configuration;
 6 import org.springframework.web.servlet.ViewResolver;
 7 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 8 import org.springframework.web.servlet.view.InternalResourceViewResolver;
 9
10 @Configuration
11 @EnableWebMvc    // <mvc:annotation-driven>
12 @ComponentScan(basePackages= {"org.great.web"})
13 public class WebConfig {
14
15     /**
16      * 配置视图解析器
17      * @return
18      */
19     @Bean
20     public ViewResolver viewResolver() {
21         InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
22         internalResourceViewResolver.setPrefix("/WEB-INF/jsp/");
23         internalResourceViewResolver.setSuffix(".jsp");
24         return internalResourceViewResolver;
25     }
26 }

3.RootConfig类

 1 package org.great.config;
 2
 3 import javax.sql.DataSource;
 4
 5 import org.mybatis.spring.SqlSessionFactoryBean;
 6 import org.mybatis.spring.annotation.MapperScan;
 7 import org.springframework.context.annotation.Bean;
 8 import org.springframework.context.annotation.ComponentScan;
 9 import org.springframework.context.annotation.Configuration;
10 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
11 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
12 import org.springframework.transaction.annotation.EnableTransactionManagement;
13
14 import com.mchange.v2.c3p0.ComboPooledDataSource;
15
16 @Configuration
17 @ComponentScan(basePackages= {"org.great.service"})
18 @MapperScan(basePackages= {"org.great.mapper"})
19 @EnableTransactionManagement  //<tx:annotation-driven/>   用于启动注解 事务
20 public class RootConfig {
21
22
23     @Bean
24     public DataSource dataSource() throws Exception{
25         ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
26         comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
27         comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test607?useSSL=false&serverTimezone=GMT");
28         comboPooledDataSource.setUser("root");
29         comboPooledDataSource.setPassword("");
30         return comboPooledDataSource;
31     }
32
33     @Bean
34     public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception{
35         SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
36         sqlSessionFactoryBean.setDataSource(this.dataSource());
37         PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();
38         sqlSessionFactoryBean.setMapperLocations(pathMatchingResourcePatternResolver.getResources("classpath:org/great/sql/*.xml"));
39         return sqlSessionFactoryBean;
40     }
41
42     @Bean
43     public DataSourceTransactionManager dataSourceTransactionManager() throws Exception{
44         DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
45         dataSourceTransactionManager.setDataSource(this.dataSource());
46         return dataSourceTransactionManager;
47     }
48
49     // 使用@MapperScan(basePackages= {"org.great.mapper"})代替
50     /*@Bean
51     public MapperScannerConfigurer mapperScannerConfigurer() throws Exception{
52         MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
53         mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
54         mapperScannerConfigurer.setBasePackage("org.great.mapper");
55         return mapperScannerConfigurer;
56     }*/
57 }

4.User实体类

 1 package org.great.entity;
 2
 3 public class User {
 4
 5     private int id;
 6
 7     private String name;
 8
 9     private String age;
10
11     public int getId() {
12         return id;
13     }
14
15     public void setId(int id) {
16         this.id = id;
17     }
18
19     public String getName() {
20         return name;
21     }
22
23     public void setName(String name) {
24         this.name = name;
25     }
26
27     public String getAge() {
28         return age;
29     }
30
31     public void setAge(String age) {
32         this.age = age;
33     }
34
35     @Override
36     public String toString() {
37         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
38     }
39
40     public User(int id, String name, String age) {
41         super();
42         this.id = id;
43         this.name = name;
44         this.age = age;
45     }
46
47     public User() {
48         super();
49     }
50 }

5.IUserMapper接口

 1 package org.great.mapper;
 2
 3 import java.util.List;
 4
 5 import org.great.entity.User;
 6 import org.springframework.stereotype.Repository;
 7
 8 @Repository
 9 public interface IUserMapper {
10
11     public List<User> selectAllUser();
12
13     public void insertUser(User user);
14 }

6.UserService类

 1 package org.great.service;
 2
 3 import java.util.List;
 4
 5 import org.great.entity.User;
 6 import org.great.mapper.IUserMapper;
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.stereotype.Service;
 9 import org.springframework.transaction.annotation.Transactional;
10
11 @Service
12 public class UserService {
13
14     @Autowired
15     private IUserMapper iUserMapper;
16
17     public List<User> selectAllUserService() {
18         List<User> selectAllUser = iUserMapper.selectAllUser();
19         return selectAllUser;
20     }
21
22     @Transactional
23     public void insertUserService() {
24         User user = new User();
25         user.setName("王五");
26         user.setAge("23");
27         iUserMapper.insertUser(user);
28     }
29 }

7.UserControll类

 1 package org.great.web;
 2
 3 import java.util.List;
 4
 5 import org.great.entity.User;
 6 import org.great.service.UserService;
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.stereotype.Controller;
 9 import org.springframework.ui.Model;
10 import org.springframework.web.bind.annotation.RequestMapping;
11
12 @Controller
13 public class UserController {
14
15     @Autowired
16     private UserService userService;
17
18     @RequestMapping("/firstView")
19     public String firstView(Model model) {
20         List<User> selectAllUserService = userService.selectAllUserService();
21         model.addAttribute("userList", selectAllUserService);
22         return "home";
23     }
24
25     @RequestMapping("/insertUser")
26     public String insertUser(Model model) {
27         userService.insertUserService();
28         return "redirect:/firstView.do";
29     }
30 }

8.User.xml配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3 <!DOCTYPE mapper
 4     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 5     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 6
 7 <mapper namespace="org.great.mapper.IUserMapper">
 8
 9     <resultMap type="org.great.entity.User" id="UserResult">
10         <id column="id" jdbcType="INTEGER" property="id" />
11         <result column="name" jdbcType="VARCHAR" property="name" />
12         <result column="age" jdbcType="VARCHAR" property="age" />
13     </resultMap>
14
15     <select id="selectAllUser" resultMap="UserResult">
16         select * from user
17     </select>
18
19     <insert id="insertUser">
20         insert into user (name,age) values(#{name},#{age})
21     </insert>
22
23 </mapper>

9.home,jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ page isELIgnored="false" %>
 4 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>Insert title here</title>
10 </head>
11 <body>
12     <table>
13         <tr>
14             <td>序号</td>
15             <td>名字</td>
16             <td>年龄</td>
17         </tr>
18         <c:forEach items="${userList}" var="user" varStatus="ind">
19             <tr>
20                 <td>${ind.count}</td>
21                 <td>${user.name}</td>
22                 <td>${user.age}</td>
23             </tr>
24         </c:forEach>
25     </table>
26 </body>
27 </html>

原文地址:https://www.cnblogs.com/ke609/p/9160453.html

时间: 2024-10-09 16:22:08

简单的搭建一个SSM项目的相关文章

简单搭建一个SSM项目

简单搭建一个用户管理的SSM项目框架,虽然也能用servlet+jdbc搭建更简单的,不过个人感觉工作中更多用的ssm框架项目,这里就简单用ssm来搭建需要的项目吧. 准备工具:eclipse.jdk1.7.Mysql.maven.tomcat.(请先确定计算机本身已安装好前面几个工具,myeclipse自动集成maven,eclipse需要自己先配置,具体配置请自行百度) 这里先把项目的目录结构显示下 好的,现在开始 File->new->other->maven project Ne

vue-用Vue-cli从零开始搭建一个Vue项目

Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可.本文用Vue-cli从零开始搭建一个Vue项目. 准备工作 1.下载安装Node.js 下载地址:https://nodejs.org/en/download/ ,选择合适自己的版本下载即可

如何使用脚手架搭建一个react项目

1.准备工作: 首先要知道,搭建一个react项目总是需要安装node.js和npm的,未安装的请移步node.js官网:https://nodejs.org/en/ 检测是否安装成功:npm -v 和node -v 2.npm安装脚手架 执行命令npm install create-react-app 3.使用npx和脚手架创建项目my_app,这个过程可能需要几分钟,请耐心等待 npx create-react-app my_app 这里用到了npx,就是可以让你不用全局安装create-r

完整搭建一个vue项目

目录 一. 搭建一个vue项目的完整步骤 二. 卸载vue-cli 三. 完全卸载webpack 一. 搭建一个vue项目的完整步骤 1.安装node.js 下载地址 # 检查是否安装成功 node -v npm -v 2.为了提高下载效率,可以使用淘宝镜像 # 淘宝镜像 npm install -g cnpm -registry=https://registry.npm.taobao.org # 检查是否安装成功 cnpm -v 3.安装webpack打包工具 webpack中文文档 npm

使用vue-cli脚手架自动化搭建一个vue项目

最近在学习使用vue,简单汇总下如何使用vue-cli脚手架自动化搭建一个vue项: 1.首先,要安装node.js,之后第一步检测是否安装node:没有安装node的同学请到官网下载安装 https://nodejs.org/en/download/ 安装成功后在命令行查看node版本,如果有说明安装成功. 2.之后全局安装vue-cli脚手架 电脑进入cmd,任意路径下 使用 npm命令:npm install vue-cli -g 注意:npm -v 3.0+   npm版本需要在3.0之

如何搭建一个vue项目(完整步骤)

参考资料 一.安装node环境 1.下载地址为:https://nodejs.org/en/ 2.检查是否安装成功:如果输出版本号,说明我们安装node环境成功 3.为了提高我们的效率,可以使用淘宝的镜像:http://npm.taobao.org/ 输入:npm install -g cnpm –registry=https://registry.npm.taobao.org,即可安装npm镜像,以后再用到npm的地方直接用cnpm来代替就好了. 检查是否安装成功: 二.搭建vue项目环境 1

抛开vue-cli 利用requireJS搭建一个vue项目

---恢复内容开始--- 现在学习vue都是利用脚手架vue-cli快速搭建一个项目,这是非常高效的方法,我是十分推荐的,但是有时候在没有互联网的情况,我们没办法在node环境下,敲一个nmp install XXX帮我们搭建系统.这边也遇到了这样的情况,记录一下过程,备忘. 采用的方式是利用requireJS搭建一个遵循AMD规则的vue项目.关于这一块,大家可以百度一下,查询相关资料熟悉requireJS的使用. 第一步,都是建立一个如下常规的简单的工程结构: ----lib 存放js库文件

从零开始搭建一个react项目

如果只是想试试 React,那么建议使用 create-react-app来创建一个react项目.快速开始 因为 create-react-app 和 vue-cli 不一样,create-react-app将webpack的相关配置直接封装好了,所以自定制化程度不高,所以考虑手动构建一个 React项目 代码下载 准备工作 安装node环境. 配置cnpm(看个人需求). 准备一个空的文件夹react-demo. 初始化工程 从这里开始新建一个react工程 1. 初始化工程目录 1 cd

nodejs 简单的搭建一个服务器

前言: nodejs 主要是后台语言 模块 自定义 JavaScript 是前台语言 nodejs 是 也是使用我们的 JavaScript 语言,甚至他的引擎都是 chrome 的 v8 引擎,开源,所以学习 nodejs 对于我们前端来说,是一件极其友好的事情 后台的语言: php python Java nodejs 的优势 1. 性能 经过某个不专业的人士测试: nodejs 比 php 的 性能高 86倍 nodejs 运行 1s   php 要运行 一分半 就是写一个项目:php