基础环境搭建
<1>创建并配置一个Maven工程
①创建一个Maven工程
File —>new —>Maven Project—>选择"create a simple project",next—>输入信息,finish
其中Group Id和Artifact Id被统称为坐标,它们是为了保证项目的唯一性,如果将项目配置到maven本地仓库中,想要找到它时,就需要用到这两个id。
一般Group Id分为多个段。一般第一段为域,域大致分为org、com、cn三种,其中org表示非营利组织,com表示商业组织;第二段一般表示公司名称。
Artifact Id可以理解为项目名称。这边先简单填写一下。
创建完之后工程的目录结构如下图,会发现pom.xml文件上有红叉,并且会提示“web.xml is missing and is set to true”,这是因为工程缺失了一些web项目必要的文件。
②生成web工程相关的文件
项目右键,Properties—>Project Facets—>去掉Dynamic Web Project的勾,Apply—>重新加上勾后
点击进入,输入希望META-INF文件夹和WEB-INF文件夹生成的位置(如:在src/mian下新建一个webapp,将文件生成在这里),点击确定后再次点击Apply。
生成完之后的工程目录如下:
如果pom.xml依旧标红,右键项目选择Maven——>update project即可
③配置Tomcat服务器
tomcat服务器部署(如果在此工作空间中部署过可以不再部署):
Window—>Preferences—>Runtime Envirement—>Add—>选择一个tomcat服务器—>Browse(找到电脑中对应的tomcat服务器文件)—>finish
然后将tomcat配置到项目中:
右击项目—>Properties—>Java Build Path—>Libraries—>Add Libraries—>Server Runtime—>选择刚部署好的服务器(如果有的话,也可以选择其他的)
④配置Maven
Window—>Preferences—>Maven—>User Settings—>Browse—>找到下载的maven的配置文件settings.xml(一般在conf\settings.xml目录下)
没有Maven的首先要进行Maven的下载。完成后接下来就要对Maven的配置文件进行一些小的修改,在下载的Maven中,找到settings.xml文件,也就是上一步中配置的那个settings.xml文件,找到其中的mirrors标签,在其中添加阿里云的镜像,以此加快下载jar包的速度。添加如下代码:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
然后添加一个本地仓库,用于存放下载下来的jar包,在settings标签下添加:
<localRepository>(文件夹位置)</localRepository>
一般将在maven文件夹下新建一个repository文件夹作为存放jar包的文件夹,然后有时还要配置maven所用的JDK和编译器水平等等,在profiles标签下添加(以jdk1.7为例):
<profile>
<id>jdk1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>
<2>引入项目依赖的jar包
引入jar包主要通过在pom.xml文件中配置的方式。
jar包类型主要包括:
- spring相关jar包
- springmvc相关jar包
- mybatis相关jar包(包括数据库连接池、驱动包等)
- 其他(jstl、servlet-api、junit等)
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.luohe</groupId>
<artifactId>ssm_tasop-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<!-- 引入项目依赖的jar包 -->
<dependencies>
<!-- *****Spring相关的包***** -->
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- Spring-JDBC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- Spring面向切面编程 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- ******Spring相关的包的引入结束****** -->
<!-- ******MyBatis相关的包的引入****** -->
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!-- MyBatis整合Spring的适配包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- 数据库连接池、驱动 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!-- 逆向工程jar包 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!-- *****MyBatis相关jar包引入完成***** -->
<!-- *****引入jstl、servlet-api、junit***** -->
<!-- jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.2</version>
</dependency>
</dependencies>
</project>
<3>引入前端框架(bootstrap)
下载地址:
https://v3.bootcss.com/
下载完成后将bootstrap文件放在项目中的某个文件夹下,复制粘贴即可,如:src/main/webapp/static(在webapp下新建一个static)
bootstrap使用方式可以参考上方的地址中的官方文档。
导入完成后的项目目录如上图。
<4>编写ssm整合的关键配置文件
①Spring MVC配置文件
在web.xml同级目录下,创建Spring MVC的配置文件,命名为dispatcherServlet-servlet.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:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd ">
<!-- Spring MVC的配置文件,网站跳转逻辑的控制 -->
<!-- 包扫描,use-default-filters:是否使用默认的禁用规则 -->
<context:component-scan base-package="com.phoenix" use-default-filters="false">
<!-- 只扫描控制器(include:包含,获取所定义的内容;exclude:除...以外,获取除定义的以外的所有内容) -->
<context:include-filter type="annotation" expression="org.springframework.steretype.Controller"/>
</context:component-scan>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- prefix:前缀,suffix:后缀。视图的位置和文件名后缀 -->
<property name="prefix" value="/WEB-INF/views"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 两个标准配置 -->
<!-- 将springmvc不能处理的请求交给Tomcat -->
<mvc:default-servlet-handler/>
<!-- 能支持一些springmvc更好记的功能,比如JSR303校验,快捷的ajax,映射动态请求等 -->
<!--mvc:annotation-driver/-->
</beans>
添加完后的项目目录:
②数据源文件配置
在src/main/resources目录下创建dbconfig.properties配置文件,用于保存数据库信息,主要有四个字段。
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/数据库名
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password= /*数据库密码*/
③Spring配置文件
在src/main/resources目录下创建Spring配置文件,applicationContext.xml,主要配置包扫描,数据源配置,和MyBatis的整合配置,事物的控制等。主要配置的都是与业务逻辑有关的内容:
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- Spring的配置文件,主要配置与业务逻辑有关的 -->
<!-- 数据源、事务控制等 -->
<!-- 包扫描,扫描除控制器外的所有内容 -->
<context:component-scan base-package="com.phoenix" use-default-filters="false">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 导入配置文件 -->
<context:property-placeholder location="classpath:dbconfig.properties"/>
<!-- =============数据源配置=========== -->
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- =============配置和MyBatis的整合============ -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessonFactoryBean">
<!-- 指定mybatis全局配置文件的位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!-- 数据源 -->
<property name="dataSource" ref="pooledDataSource"/>
<!-- 指定mybatis,mapper文件的位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<!-- 配置扫描器,将mybatis接口的实现加入到ioc容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描所有的dao接口的实现,加入到ioc容器中 -->
<property name="basePackage" value="com.phoenix.tasop.dao"/>
</bean>
<!-- =============事务控制的配置============= -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 控制住数据源 -->
<property name="dataSource" ref="pooledDataSource"></property>
</bean>
<!-- 开启基于注解的事务或使用xml配置形式的事务(主要使用配置式) -->
<aop:config>
<!-- 切入点表达式:包+..(..表示包下的子包)*(表示类)(..)(括号表示方法,括号中的..表示方法可以有任意多个参数) -->
<aop:pointcut expression="execution(* com.phoenix.tasop.service..*(..))" id="txPoint"/>
<!-- 配置事务增强 (advice-ref:事务如何切入,pointcut-ref:事务切入的方法)-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<!-- 配置事务增强,事务如何切入 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 所有方法都是事务方法 -->
<tx:method name="*"/>
<!-- 以get开头的所有方法都设置为只读(查询) -->
<tx:method name="get*" read-only="true"/>
</tx:attributes>
</tx:advice>
</beans>
配置完后的项目文件目录:
到这里,关键的配置文件中的Spring MVC和Spring配置文件已经配置完成,接下来要利用MyBatis反向工程生成Dao层接口和实现类,以及sql配置文件,然后进行MyBatis配置文件和web.xml的配置。