[SSM项目]二-项目设计和框架搭建
一 10个实体类
- 选择Integer 而不是int的原因 :当值为空时,int类型会自动为其初始化,这是我们不希望的。
二 配置Maven
目录结构:
src/main/java:业务代码
src/main/resources:项目用到的资源文件,如Spring、Mybatis、日志的配置文件
src/test/java:单元测试的java代码
src/test/resources:单元测试的配置文件,一般不写什么
src/test/resources/spring(手动添加):spring相关的配置信息
src/main/resources/mapper(手动添加):DAO中每个方法对应的sql。
Maven Dependencies:Maven管理项目涉及到的jar包,通常使用pom.xml来指定下载
Apache Tomcat:tomcat依赖的jar包
JRE System Library:java运行时所依赖的jar包
- src/main/webapp(重要):存放前端静态资源,如JSP、js、CSS、html等
- resources(手动添加):如上
- WEB-INF: Web浏览器无法访问该文件夹里面的内容
- web.xml:初始化配置信息
target:存放项目构建后的文件和目录、jar包、编译后的文件等
添加一些包
- src/main/java/com/imooc/o2o目录下:
- entity:实体类
- web:controller层,存放controller控制器
- service:业务逻辑层
- impi:实现
- dao:与数据相关的操作,如数据库操作、文件读写操作、redis缓存操作。ps:不需要impi,使用Mybatis,所以可以是在配置文件中src/main/resources/ mapper中实现dao接口逻辑。
- dto:弥补entity的不足,通过在entity外面包一层dto。
- enums:枚举类型
- interceptor:拦截器(项目中和默认放的目录不一样)
- util:通用工具类
通过pom.xml下载项目所需要的jar包
?commons-colleciton未在poem.xml中配置下载
三 逐层完成SSM的各项配置
数据库连接的配置
- src/main/resources下,
- (new untitled file,)建``jdbc.properties```文件:数据库配置文件
mybatis-config.xml:mybatis配置文件
Spring配置(由下层至上层配置)
src/main/resources/spring下
spring-dao.xml:配置dao层。首先,找出读取变量的文件位置,将jabc.properties和mybatis-config.xml加载了进来;第二,创建datasource数据库连接池;第三,配置创建用来创建数据库连接池的对象;第四,配置需要到哪一个包去扫描dao层,并且将第三步的对象传进来。三四:定义好了通过mybatis与数据库交互的方式。spring-service.xml:配置service层。配置事务管理,将spring-dao配置好的datasource注入到事务管理器,便于service层做操作。spring-web.xml:配置web层,定义dispatcher-service如何响应url请求,即controller的行为。
src/main/webapp下
web.xml:将Springdisptcher注册来响应前端请求,把spring的配置整合到一起。
四 验证三层
验证DAO
- src/main/java/
- com/imooc/o2o/
- AreaDao.java
- com/imooc/o2o/
mybatis不需要dao写实现类,直接在mybatis里自动实现,只需在mapper下配置:
src/main/resources/mapper/
- AreaDao.xml
src/test/java/
- 测试类AreaDaoTest.java
- 测试基类baseTest.java
runAsJunit 测试类即可。
验证service
src/main/java/
- com/imooc/o2o/
- AreaService.java
- impl/
- AreaServiceImpl.java
- com/imooc/o2o/
src/test/java/
- 测试基类添加修改
- 测试类
验证Controller
- src/main/java/
- com/imooc/o2o/
- web/superadmin/
- AreaController.java
- web/superadmin/
- com/imooc/o2o/
此上都是用eclipse环境,验证controller一直跑报500/404 ,改用idea跑ok
打开项目,配置tomcat和路径:run-configuration
配置:


验证Contoller结果

五 SSM重点知识
- SpringMVC:DispatcherServlet
DispatcherServlet主要用来拦截符合要求的请求,把请求分发到不同的控制器中去,根据控制器的处理结果,生成相应响应,发送到客户端。 - Spring:IOC和AOP
IOC:指由Spring来控制对象的生命周期和对象间的关系。通过DI和依赖注入实现的,主键之间的依赖关系由容器在运行期决定并动态注入。
AOP:面向切面编程。实现方式是动态代理。 - MyBatis:ORM
ORM:通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
[SSM项目]二-项目设计和框架搭建的更多相关文章
- javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之二 基础Hibernate框架搭建篇
我们在搭建完Struts框架之后,从前台想后端传送数据就显得非常简单了.Struts的功能不仅仅是一个拦截器,这只是它的核心功能,此外我们也可以自定义拦截器,和通过注解的方式来更加的简化代码. 接下来 ...
- 校园商铺-2项目设计和框架搭建-6逐层完成SSM的各项配置
1. 创建/src/main/resources/jdbc.properties文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://l ...
- maven集成SSM项目,jetty部署运行——搭建maven项目部署jetty试运行(一)
今天闲来没事采用maven集成一个SSM框架来复习复习,下面开始我的复习之旅,慢慢来,不着急,哈哈,不忙时候敲两下,整起来. 工具为Eclipse,首先需要建立一个maven工程,file右键new- ...
- Vue项目二、vue环境搭建以及Vue-cli使用及详解
一.Vue多页面应用的环境搭建 每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用. 环境的搭建如下,在页面中引入如下框架 <scrip ...
- Web API系列之二WebApi基础框架搭建
本文主要介绍如何搭建一个WebApi的项目.关于如何搭建WebApi的方式一共有两种: 一.通过vs直接新建一个WebApi的项目,步骤如下: 第一步: 新建一个空的Web应用程序,可以理解为作为We ...
- 校园商铺-2项目设计和框架搭建-5配置maven
/src/main/java 存放业务的Java代码 /src/main/resources 存储项目所用到的资源文件,如各种Spring,batis,日志的配置文件 /src/test/java 单 ...
- 如何在SSM项目配置springMVC校验框架validator
1.在springMVC配置文件配置添加如下信息 <!-- 表单验证框架 --> <bean id="validator" class="org.spr ...
- 微信公众账号开发教程(二) 基础框架搭建——转自http://www.cnblogs.com/yank/p/3392394.html
上一章,我们已经初步讲解了微信公众账号开发的基本原理,今天我们来探索设计实现. 首先我们设计了模块层次图,当然图中只是给出一种实现方式,不局限于此.具体见下图. 主要功能介绍如下: 1)请求接口层.处 ...
- 预约系统(二) MVC框架搭建
采用VS2013,自带的MVC4来搭建 MODEL层,表对象的建立: T_Bm.cs using System; using System.Collections.Generic; using Sys ...
随机推荐
- set学习记录
set是STL中的集合容器,其中每个元素都互不相同,并且都是以递增的形式排列. set只能使用迭代器访问. 说一下常用函数: 1.insert(x):插入函数用于把x插入set. 2.find(val ...
- 2-1关闭和重启linux系统
0x01 shutdown命令 语法:shutdown [选项][时间][警告信息] 选项 含义 -k 并不执行shutdown,只是发出警告信息 -r 重新启动系统 -h 关闭系统 -c 取消运行s ...
- 【ZJOI2007】棋盘制作 - 悬线法
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个 \(8 \times 8\) 大小的黑白相间的方阵,对应八八六十四卦 ...
- 浏览器自动化的一些体会3 webBrowser控件之零碎问题
1. 一般需要执行这一句:webBrowser1.ScriptErrorsSuppressed = true; 主要目的是禁止跳出javascript错误的对话框,否则会导致程序无法正确地跑下去.缺点 ...
- centos7 + nginx+django 运行环境
.easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装easy_install 下载地址:https://pypi.python.org/pypi ...
- python numpy数组操作
数组的创建 import numpy as np arr1 = np.array([3,10,8,7,34,11,28,72]) arr2 = np.array(((8.5,6,4.1,2,0.7), ...
- Java算法——动态规划
基本思想: 动态规划算法通常用于求解具有某种最优性质的问题(作用就是求最优解).在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有最优值的解.动态规划算法与分治法类似,其基本思 ...
- Charles 断点修改Response
前言: 我们可以通过map功能进行重定向,但如果同一个域名进行的是不同请求与返回.此时map在这里就不适用了. 我们可以通关对某一请求进行断点,在进行修改请求或者返回.这样就可以满足我们的需求了. 一 ...
- 焦大:做SEO应该研究的用户需求的方向
http://www.wocaoseo.com/thread-60-1-1.html 最近收到打击很大,收获也颇多,这一切都莫过于用户需求的问题.我曾经给我弟说过,我对检索排名特征识别.提取和计算自认 ...
- JS中强制类型转换
JavaScript提供了3种强制类型转换的方法 一.Boolean()方法 该方法将指定的参数转换成布尔型.Boolean(object).参数object可以是字符串对象.数值对象.DOM对象等. ...