IDEA使用
1.简单Web项目搭建
- 创建一个Project
File->New->Project


选择next,随后输入 project名称和对应的项目存放位置,点击finish完成项目创建

- 在对应的Project下创建一个Module(一个Project可以对应创建多个Module)
鼠标点中项目名称Demo -> 右键选择New,选择Module->同时勾选web application和create web.xml

Next随后输入工程名称,选择Finish完成工程创建

创建完成,工程目录结构如下

- 创建lib、classes文件夹
随后在对应的Module下的web目录下分别创建两个文件夹lib、classes用于存放数据(classes用于存放编译后的输出文件;lib用于存放第三方jar包)

- 文件夹路径配置
File -> Project Structure (快捷键:Ctrl + Shift + Alt + S)
选择Module 下的Paths选项卡 -> 勾选”Use module compile output path”,随后将Output path和Test output path路径均指向上述创建的classes文件夹

随后选择Dependencies -> 将Module SDK选择为1.8 -> 点击右边的“+”号 -> 选择“Jars or Directories”

选中创建好的lib文件夹,点击OK进入下一步操作

选中“Jar Directory”,选择OK,配置文件夹路径完成随后进入下一步操作

- 配置Tomcat服务器
Run -> 选择Edit Configuration->点击‘+’号,选中Tomcat Server->Local

添加已安装的Tomcat路径,随后选中配置即可

在Tomcat中部署并运行项目,选中Deloyment选项卡,点击‘+’号选择Artifact

选中对应的Web项目,在右侧选项卡中的“Application context”处设置项目的访问路径,也可以不填

选择应用,随后编写index.jsp文件运行测试,可根据指定的访问路径测试项目:http://localhost:8080/配置路径/

实现项目热部署(不需要重启tomcat服务器即可刷新代码数据)
在配置tomcat且Deployment处的“+”的Artifacts一定要是war exploded形式
___:war exploded 作用:展开部署(相当于将资源文件进行展开后进行部署)
___:war 作用:发布模式,这是先打成war包,再部署
File->Settings->Complier->勾选“Build projectautomatically”

在tomcat配置中的Server选项卡中的On frame deactivation:选择“Update classes and resources”,使项目发布在tomcat上热更新相应的源文件

2.基于Maven的SSM简单项目搭建
搭建基本的运行环境,完成IDEA、JDK、Tomcat、Maven的简单配置
创建Maven项目
File->New Project->选中Maven,选择指定的JDK版本,勾选“Create from archetype”,随后选中“org.apache.maven.archetype”,并指定“org.apache.maven.archetypes:maven-archetype-webapp”选项

选择Next随后输入groupId与artifactId
groupId和artifactId被统称为“坐标”,是为了保证项目唯一性而提出的,若要将项目加载到maven本地仓库中,则可根据这两个数据进行定位
groupId一般分为多个段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。
举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
自定义:groupId可设置为“cn.xxx”,cn表示域为中国,xxx可以是指定的任意内容(例如名字缩写),artifactId则可设置为对应的项目名称(例如demo),依此结构,项目中设置的包的结构最好按照这种规范,以此开头随后根据不同的包类型进行定义。完整包结构可以为“cn.ljl.demo.dao”等

点击Next,随后选择相应的maven版本,设定指定的maven仓库设定的settings.xml配置文件

输入项目名称,指定项目存放的位置,点击finish完成maven工程创建

第一次创建需要等待maven仓库相关数据加载完成,等待加载后可看到生成的工程目录结构如下所示

要创建SSM项目,需遵循一定的规范,此处添加几个文件夹用于分别存放dao、service、controller数据(先创造普通文件夹随后配置)
配置资源文件夹(Source Folder):File->Project Structure,选中指定工程,选择Sources选项卡,随后右键点击要配置的文件夹resources,选中Test Resources即可;右键点击java文件夹选中Sources

配置完成,则可以看到普通的文件夹已配置成具备相应角色的文件夹

2.项目配置
创建数据库:
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`email` varchar(255) NOT NULL COMMENT '用户邮箱',
`username` varchar(255) NOT NULL COMMENT '用户昵称',
`role` varchar(255) NOT NULL COMMENT '用户身份',
`mobile` varchar(50) DEFAULT '' COMMENT '手机号码',
PRIMARY KEY (`id`)
) ;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'aomo@qq.com', 'aomo', 'admin', '000000');

配置文件:
- pom.xml:引入相关的maven依赖
- 在resources资源文件夹下配置如下四个文件
log4j.properties:日志配置文件
jdbc.properties:数据库连接配置文件
applicationContext.xml:spring整合mybatis配置文件
spring-mvc.xml:spring配置文件
log4j.properties:
#日志输出级别
log4j.rootLogger=debug,stdout,D,E
#设置stdout的日志输出控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#输出日志到控制台的方式,默认为System.out
log4j.appender.stdout.Target = System.out
#设置使用灵活布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} -[%p] method:[%c (%rms)] - %m%n
jdbc.properties:
#数据库连接配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mvcdemo?characterEncoding=utf8&useSSL=false
#数据库的用户名
username=root
#数据库的密码
password=root
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
applicationContext.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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--
原有配置思路:考虑到配置文件的不同定位,根据配置的内容进行分类:applicationContext.xml文件
MyBatis的SqlMapConfig.xml文件,若使用spring管理mapper接口则可可在相应配置文件直接进行整合即可
applicationContext-dao.xml:配置数据库连接、加载mybatis配置文件、配置相应的mapper扫描器等内容
applicationContext-service.xml:配置service相关的bean,若使用注解则可忽略,除非是指定内容
applicationContext-transaction.xml:配置事务管理相关内容
为了简化配置信息,此处将所有的内容进行整合成一个applicationContext.xml文件
-->
<!-- 加载properties文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"/>
</bean>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<!-- mybatis和spring完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 扫描model包 -->
<property name="typeAliasesPackage" value="cn.sz.code.model"/>
<!-- 扫描sql配置文件:mapper需要的xml文件-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<!-- Mapper动态代理开发,扫描dao接口包-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!-- 给出需要扫描Dao接口包 -->
<property name="basePackage" value="cn.sz.code.dao"/>
</bean>
<!-- 事务管理 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--数据库连接池-->
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 配置扫描注解,这样cn.sz.code包下的文件都能被扫描 -->
<context:component-scan base-package="cn.sz.code"/>
<!-- 开启SpringMVC注解模式 -->
<mvc:annotation-driven/>
<!-- 静态资源默认servlet配置 -->
<mvc:default-servlet-handler/>
<!-- 配置视图解析器:配置返回视图的路径,以及识别后缀是jsp文件 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!--配置视图解析器的前后缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
- 在项目的webapp的WEB-INF目录下创建web.xml文件(若在创建项目的时候就已经生成则直接覆盖内容即可)
文件配置完成(先注释掉applicationContext.xml的文件相关内容,以免项目启动出错,待后续创建好相关的代码再进行配置),随后在tomcat上部署项目测试项目配置是否成功(具体步骤可参考上述简单Web项目创建),访问项目路径为:
http://localhost:8080/mvcDemo/
如果访问失败,需要查看tomcat服务器是否启动成功,确认配置信息
3.SSM项目代码配置
完车项目配置之后可在指定的cn.sz.code.*文件包下创建相关代码进行测试(需要注意包名定义以及类相关的配置要适应配置文件中的定义,否则项目启动会保存,需根据保存内容一一对应查找出错原因)
cn.sz.code.model:model实体定义,与数据库指定表字段一一对应
cn.sz.code.dao:dao/mapper层定义(数据库CRUD操作,对应定义相应的mapper映射)
cn.sz.code.service:service层接口定义,封装dao/mapper层数据
cn.sz.code.serivce.impl: service层实现类定义,封装dao/mapper层数据
cn.sz.code.controller:controller层定义,接收前端用户请求,调用service层服务,返回数据
<1>cn.sz.code.model:User类定义

<2>cn.sz.code.dao:dao/mapper:UserDAO定义、UserDAO.xml配置


<3> cn.sz.code.service.*:xxxService接口及对应实现类定义


<4>cn.sz.code.controller:Controller层定义,xxxController接口及对应jsp文件


4.项目启动测试
最终生成项目目录结构如下:

访问链接:http://localhost:8080/mvcDemo/user/selectUser
