网站首页 > 技术文章 正文
本文结构
SSM 最流行的框架(任意掌握一种即可):
第一种:jar 版本的搭建。(推荐)
第二种:单机 maven 版本的搭建。(了解)
第三种:分布式 Maven 版本的搭建。(推荐)
第一种 :jar 方式的搭建 SSM 系统
第一部分:确认架构技术 + 架构思想
架构技术:SpringMVC4 + Spring 4+ MyBatis3+MVC
架构思想:MVC 分层
MVC 解释:MVC 的全名是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写,是一种软件设计典范。
它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间,代码复用率高。
整体项目结构展示(在搭建前,我们的期望图)
整体 lib 结构展示
SSM 的整合常用 jar 包,各自的官网免费提供(下面列出核心包的 jar 文件)
1 spring 框架依赖包引入 (推荐用:4.0 以后的版本)
spring-context
spring-beans
spring-jdbc
spring aspects
spring-webmvc
2 spring-mybatis 依赖包引入
mybatis
mybatis-spring
3 数据库依赖包引入
mysql-connector-java (注意:一般用版本是 5 的)
druid
4 redis 依赖包引入 (如果不用 redis 可以不用引入,但是企业常用)
jedis
5 web 相关依赖包引入
jstl
servlet-api
jsp-api
Jackson-databind
6 其他日志和公共包依赖引入
slf4j-log4j12
junit
commons-langs
commons-io
第二部分:实战一步一步环境搭建
2.1 新建项目工程
打开我们的 Eclipse 或者 MyEclipse 或者 Idea,本文以企业实际的 MyEclipse 为例,其他的工具同理。来根据我的节奏来,打开我们的 IDE 工具,如下图。
注意:workspace 建议不要在中文或者带有空格的目录下
2.2 改变字符集 utf-8,从源头断绝项目中文乱码问题
2.3 选择自己的 JDK 版本
2.3.1 设置 jdk
2.3.2 配置 jdk
2.4 创建 package
其他的类似,最后的结果如下图,按照 MVC 的各层,建立 package
2.5 复制 jar 放入 lib 文件夹
涉及的 jar 文件
拓展:SSM 的各自 jar 剖析
2.5.1 spring 框架依赖包引入 (推荐用:4.0 以后的版本)
spring-context
spring-beans
spring-jdbc
spring aspects
spring-webmvc
2.5 .2 spring-mybatis 依赖包引入
mybatis
mybatis-spring
2.5.3 数据库依赖包引入
mysql-connector-java (注意:一般用版本是 5 的)
druid
2.5.4 redis 依赖包引入
jedis
2.5.5 web 相关依赖包引入
jstl
servlet-api
jsp-api
Jackson-databind
2.5.6 其他日志和公共包依赖引入
slf4j-log4j12
junit
commons-langs
commons-io
本项目最终的 lib 预览如下:(每个人的项目业务不同,lib 下面的 jar 存在不同,本文仅供参考使用,切勿生搬硬套,本文旨在让大家学会思想和方法。)
2.6 复制 js、jquery 到新建的 js 文件
涉及的 js 文件可以联系作者提供,也可以上网自己搜索下载
2.7 新建 src 下面的 config ,这里面是存放一些配置 xml 文件,方便管理
新建如图所示的配置文件,哪怕文件里面是空的内容:
log4j.properties // 日志配置文件 mybatis-config.xml //mybatis 的配置文件 spring-array.xml // spring 一些 aop 和 Ioc 等的相关配置,后面给大家说明 spring-mvc.xml //springmvc 的注解等后面给大家说明
请大家按照上面的文件命名,创建空的文件。
2.7.1 在 config 中新建和配置 mybatis 和分页插件:mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <!-- 提醒:配置分页插件,如果不涉及分页,下面的可以不用写 --> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 配置数据库方言,选定项目所用的数据库,本文以 mysql 为例 --> <property name="dialect" value="mysql"/> </plugin> </plugins> </configuration>
2.7.2 在 config 中新建 spring-array.xml 和配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!-- 提醒:该文章和 CSDN 的视频完全一致,请按照下面的顺序进行配置;如果还不了解,可以查看 https://edu.csdn.net/course/detail/4468 --> <!-- 1. 配置数据源: --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/array"></property> <property name="username" value="root"></property> <property name="password" value="1111"></property> </bean> <!-- 2. 整合 mybatis 配置文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 2.1 关联数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 2.2 扫描 mybatis 的在 mapper 包中的 xml 和扫描 mybatis 的配置文件--> <property name="mapperLocations" value="classpath:com/array/mapper/*.xml"></property> <property name="configLocation" value="classpath:config/mybatis-config.xml"></property> </bean> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com/array/dao"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 3. 事务管理管理器 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 4. 声明式事务 引用上面定义的事务管理器--> <tx:annotation-driven transaction-manager="txManager"/> <!-- 5. 加载日志文件等配置文件 --> <bean id="" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:config/log4j.properties</value> </list> </property> </bean> </beans>
2.7.3 在 配置 Spring 配置文件:spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 1. 使用注解,扫描项目中的包 --> <context:component-scan base-package="com.array"></context:component-scan> <!-- 2. 开启注解 --> <mvc:annotation-driven/> <!-- 3. 配置例外:不是让所有的代码都走 springmvc 的过滤器 --> <!-- 配置静态资源,不被 DispatcherServlet 处理 --> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <!-- 4. 定义跳转文件的前缀和后缀,视图 view 的配置 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
2.7.4 在 config 中新建和 配置日志配置文件:log4j.properties(可选)
log4j.rootLogger=DEBUG,CONSOLE,FILEOUT log4j.addivity.org.apache=true # CONSOLE 提醒:该配置输出到控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=ALL log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n # 提醒:该配置输出到文件 # FILEOUT \u6253\u5370\u5230 <span style="font-family: Arial, Helvetica, sans-serif;">D\:\\report.log</span> log4j.appender.FILEOUT=org.apache.log4j.RollingFileAppender log4j.appender.FILEOUT.File=D\:\\report.log log4j.appender.FILEOUT.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.MaxFileSize=100000KB log4j.appender.FILEOUT.Append=true #log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d \u2013 %c -%-4r [%t] %-5p %c %x \u2013 %m%n log4j.appender.FILEOUT.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
2.7.5 SSM 整合核心 Web.xml 的详细配置
web.xml 的位置如下:
请在下图位置更改 web.xml 的内容,更改内容见图
springmvc4 和 spring4 容器的对象加载核心配置详解
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 1. 加载 Spring 容器 例如配置文件 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 2. 加载 Spring 容器所有配置文件的路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-*.xml</param-value> </context-param> <!-- 3. 配置 Springmvc 的核心组件 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-mvc.xml</param-value> </init-param> <!-- 4. 加载次数的配置 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 5. 建立映射关系 --> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- 6. 内存保护配置 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
2.7.6 整合完毕,环境测试效果如下
2.7.7 成功展示,查看无其他报错信息
2.8 通过 java 和 jsp 的代码去测试效果(在 maven 的时候我们采用 Junit4 测试,此处用测试给您展示一下效果)
2.8.1 创建数据库
2.8.2 实体类 Girls .java
package com.array.model; public class Girls { private Integer id; private String sname; private String cometime; private Integer age; private Integer maxscore; private String minscore; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname == null ? null : sname.trim(); } public String getCometime() { return cometime; } public void setCometime(String cometime) { this.cometime = cometime == null ? null : cometime.trim(); } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getMaxscore() { return maxscore; } public void setMaxscore(Integer maxscore) { this.maxscore = maxscore; } public String getMinscore() { return minscore; } public void setMinscore(String minscore) { this.minscore = minscore == null ? null : minscore.trim(); } }
猜你喜欢
- 2024-09-25 springMVC+mybatis开发的理财小项目j2ee
- 2024-09-25 Spring+SpringMVC+Mybatis开发中常见的问题
- 2024-09-25 利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)
- 2024-09-25 Spring+SpringMVC+Mybatis通过注解实现文章管理
- 2024-09-25 SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- 2024-09-25 java程序员福利:呈上227道Spring+SpringMVC+MyBatis面试题
- 2024-09-25 java程序员架构进阶必备:设计模式+Spring源码+MyBatis+SpringMVC
- 2024-09-25 整合spring+springmvc+mybatis第一步导入jar包
- 2024-09-25 快速搭建spring、springmvc、mybatis集成开发环境
- 2024-09-25 SpringMVC + Spring + Mybatis + Shiro + 教务查询系统源码分享
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)