IDEA使用
1.简单Web项目搭建
- 创建一个Project
File->New->Project
![e322ba8c82f68b726dbe5777061641ae.png](https://img-blog.csdnimg.cn/img_convert/e322ba8c82f68b726dbe5777061641ae.png)
![b3575a9f034ad9fdaf6b0553a2f1d7a2.png](https://img-blog.csdnimg.cn/img_convert/b3575a9f034ad9fdaf6b0553a2f1d7a2.png)
选择next,随后输入 project名称和对应的项目存放位置,点击finish完成项目创建
![b56f915846771c203e3000360c4c6944.png](https://img-blog.csdnimg.cn/img_convert/b56f915846771c203e3000360c4c6944.png)
- 在对应的Project下创建一个Module(一个Project可以对应创建多个Module)
鼠标点中项目名称Demo -> 右键选择New,选择Module->同时勾选web application和create web.xml
![aee0d664d385f8572c7b2b2ed9f76acd.png](https://img-blog.csdnimg.cn/img_convert/aee0d664d385f8572c7b2b2ed9f76acd.png)
Next随后输入工程名称,选择Finish完成工程创建
![33ed73426c761ebfc627b8bfe31e0f5b.png](https://img-blog.csdnimg.cn/img_convert/33ed73426c761ebfc627b8bfe31e0f5b.png)
创建完成,工程目录结构如下
![1b8bfb8b53f35feef438b533eb24b183.png](https://img-blog.csdnimg.cn/img_convert/1b8bfb8b53f35feef438b533eb24b183.png)
- 创建lib、classes文件夹
随后在对应的Module下的web目录下分别创建两个文件夹lib、classes用于存放数据(classes用于存放编译后的输出文件;lib用于存放第三方jar包)
![0df3635142d019d8fa9882d4f0e8e9d2.png](https://img-blog.csdnimg.cn/img_convert/0df3635142d019d8fa9882d4f0e8e9d2.png)
- 文件夹路径配置
File -> Project Structure (快捷键:Ctrl + Shift + Alt + S)
选择Module 下的Paths选项卡 -> 勾选”Use module compile output path”,随后将Output path和Test output path路径均指向上述创建的classes文件夹
![70d6385761616734994fd48cbe790443.png](https://img-blog.csdnimg.cn/img_convert/70d6385761616734994fd48cbe790443.png)
随后选择Dependencies -> 将Module SDK选择为1.8 -> 点击右边的“+”号 -> 选择“Jars or Directories”
![779e2cb2498ddb234141703f1b6c3c0d.png](https://img-blog.csdnimg.cn/img_convert/779e2cb2498ddb234141703f1b6c3c0d.png)
选中创建好的lib文件夹,点击OK进入下一步操作
![183edfba8599c184479ed6e337bdafc7.png](https://img-blog.csdnimg.cn/img_convert/183edfba8599c184479ed6e337bdafc7.png)
选中“Jar Directory”,选择OK,配置文件夹路径完成随后进入下一步操作
![9b4dd007a094aa5c0877a71102b075ad.png](https://img-blog.csdnimg.cn/img_convert/9b4dd007a094aa5c0877a71102b075ad.png)
- 配置Tomcat服务器
Run -> 选择Edit Configuration->点击‘+’号,选中Tomcat Server->Local
![a56f06e4ac8015ca3c56d4cd7177a841.png](https://img-blog.csdnimg.cn/img_convert/a56f06e4ac8015ca3c56d4cd7177a841.png)
添加已安装的Tomcat路径,随后选中配置即可
![e262c9849cf5c66b9bc12898397fdd5e.png](https://img-blog.csdnimg.cn/img_convert/e262c9849cf5c66b9bc12898397fdd5e.png)
在Tomcat中部署并运行项目,选中Deloyment选项卡,点击‘+’号选择Artifact
![b5b61a80c28efebb26613d92427bdf1b.png](https://img-blog.csdnimg.cn/img_convert/b5b61a80c28efebb26613d92427bdf1b.png)
选中对应的Web项目,在右侧选项卡中的“Application context”处设置项目的访问路径,也可以不填
![b238eb4fc79e728cd20324d5b56bf397.png](https://img-blog.csdnimg.cn/img_convert/b238eb4fc79e728cd20324d5b56bf397.png)
选择应用,随后编写index.jsp文件运行测试,可根据指定的访问路径测试项目:http://localhost:8080/配置路径/
![d7480a64052a8f8808dcef227ec60407.png](https://img-blog.csdnimg.cn/img_convert/d7480a64052a8f8808dcef227ec60407.png)
实现项目热部署(不需要重启tomcat服务器即可刷新代码数据)
在配置tomcat且Deployment处的“+”的Artifacts一定要是war exploded形式
___:war exploded 作用:展开部署(相当于将资源文件进行展开后进行部署)
___:war 作用:发布模式,这是先打成war包,再部署
File->Settings->Complier->勾选“Build projectautomatically”
![7baf89e1b6be5ab9585f6653b3360d87.png](https://img-blog.csdnimg.cn/img_convert/7baf89e1b6be5ab9585f6653b3360d87.png)
在tomcat配置中的Server选项卡中的On frame deactivation:选择“Update classes and resources”,使项目发布在tomcat上热更新相应的源文件
![2ac62df82f6f31b2df1c35f78961d497.png](https://img-blog.csdnimg.cn/img_convert/2ac62df82f6f31b2df1c35f78961d497.png)
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”选项
![c47cb0510b93d971ee462983fdfbea75.png](https://img-blog.csdnimg.cn/img_convert/c47cb0510b93d971ee462983fdfbea75.png)
选择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”等
![ab2c3a8f499af52036edd213b634a570.png](https://img-blog.csdnimg.cn/img_convert/ab2c3a8f499af52036edd213b634a570.png)
点击Next,随后选择相应的maven版本,设定指定的maven仓库设定的settings.xml配置文件
![3c25bc3a7089986f93ae63c74fc9a27d.png](https://img-blog.csdnimg.cn/img_convert/3c25bc3a7089986f93ae63c74fc9a27d.png)
输入项目名称,指定项目存放的位置,点击finish完成maven工程创建
![e0f5757363eef3537efba03b11574fd2.png](https://img-blog.csdnimg.cn/img_convert/e0f5757363eef3537efba03b11574fd2.png)
第一次创建需要等待maven仓库相关数据加载完成,等待加载后可看到生成的工程目录结构如下所示
![e7812893704766c6b54a619beca27282.png](https://img-blog.csdnimg.cn/img_convert/e7812893704766c6b54a619beca27282.png)
要创建SSM项目,需遵循一定的规范,此处添加几个文件夹用于分别存放dao、service、controller数据(先创造普通文件夹随后配置)
配置资源文件夹(Source Folder):File->Project Structure,选中指定工程,选择Sources选项卡,随后右键点击要配置的文件夹resources,选中Test Resources即可;右键点击java文件夹选中Sources
![2d951b4f5301ead76d1bbb54baa30a08.png](https://img-blog.csdnimg.cn/img_convert/2d951b4f5301ead76d1bbb54baa30a08.png)
配置完成,则可以看到普通的文件夹已配置成具备相应角色的文件夹
![883cc32cddf494691702c9d908684ab1.png](https://img-blog.csdnimg.cn/img_convert/883cc32cddf494691702c9d908684ab1.png)
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');
![468726bb141e73bf4c7d2c7c52298d28.png](https://img-blog.csdnimg.cn/img_convert/468726bb141e73bf4c7d2c7c52298d28.png)
配置文件:
- 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类定义
![9ff7cffef3a8a1fbf2780bc4ff50159f.png](https://img-blog.csdnimg.cn/img_convert/9ff7cffef3a8a1fbf2780bc4ff50159f.png)
<2>cn.sz.code.dao:dao/mapper:UserDAO定义、UserDAO.xml配置
![6c14f6348fb07d95e4045aefbc9954cf.png](https://img-blog.csdnimg.cn/img_convert/6c14f6348fb07d95e4045aefbc9954cf.png)
![c98cd3dc4e3bd93b073e3eae3635ddb2.png](https://img-blog.csdnimg.cn/img_convert/c98cd3dc4e3bd93b073e3eae3635ddb2.png)
<3> cn.sz.code.service.*:xxxService接口及对应实现类定义
![fdd173137c974ba8b3d9b08187890682.png](https://img-blog.csdnimg.cn/img_convert/fdd173137c974ba8b3d9b08187890682.png)
![c95c0ecf4cd192122e0794dd006ddfde.png](https://img-blog.csdnimg.cn/img_convert/c95c0ecf4cd192122e0794dd006ddfde.png)
<4>cn.sz.code.controller:Controller层定义,xxxController接口及对应jsp文件
![6277f6442045e46930c46d9df1da7bb5.png](https://img-blog.csdnimg.cn/img_convert/6277f6442045e46930c46d9df1da7bb5.png)
![58e9ea5989fb1838e823ec66b5b272ec.png](https://img-blog.csdnimg.cn/img_convert/58e9ea5989fb1838e823ec66b5b272ec.png)
4.项目启动测试
最终生成项目目录结构如下:
![24b579eb5252ca4a9717081099e09319.png](https://img-blog.csdnimg.cn/img_convert/24b579eb5252ca4a9717081099e09319.png)
访问链接:http://localhost:8080/mvcDemo/user/selectUser
![588250874a00d847f3ffa93d058f6426.png](https://img-blog.csdnimg.cn/img_convert/588250874a00d847f3ffa93d058f6426.png)