一步一步用maven创建ssm的web项目

使用maven来创建SSM的web项目

第一步创建一个maven工程
一步一步用maven创建ssm的web项目
创建一个空的maven工程
选择用jar
后面把它转化成web工程
创建成功后
选择项目右键->Properties->Project Facets
点击箭头指向的位置
一步一步用maven创建ssm的web项目

点击选择Dynamic Web Module
再选择下面的
一步一步用maven创建ssm的web项目
输入创建webapp的路径,选择创建web.xml文件,一直点击ok就可以了

一步一步用maven创建ssm的web项目
这个时候已经是web工程了
但是没有添加tomcat还没有添加tomcat的依赖
右键项目->Build Path->Configure Build Path
打开后选择Add Library…
一步一步用maven创建ssm的web项目
再选择Server Runtime
一步一步用maven创建ssm的web项目
再选择要使用tomcat就可以了,如果有多个选择的话,尽量选择和自己使用的tomcat对应的版本
一步一步用maven创建ssm的web项目
这个时候就已经是一个web项目了,可以写一个页面启动tomcat测试一下。

一步一步用maven创建ssm的web项目

接下来整合spring
添加spring和springmvc的依赖,一次解决

<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>4.3.7.RELEASE</version>
	</dependency>

然后在web.xml文件内添加配置spring的信息

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext.xml</param-value>
</context-param>

<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

这个时候用tomcat跑一下,你会发现报错,但是不是找不到applicationContext.xml的错误。
一步一步用maven创建ssm的web项目
没有找到spring的类,这是因为maven的jar没有被添加进来
选择项目右键->Properties->Deployment Assembly ,再选择Add…
一步一步用maven创建ssm的web项目
选择Java Build Path Entries,再选择next
一步一步用maven创建ssm的web项目
再选择Maven Dependencies确定就可以了
一步一步用maven创建ssm的web项目

这个时候跑一下tomcat就会告诉你,找不到applicationContext.xml,就说明jar已经添加进来了
错误信息:
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist

把applicationContext.xml创建出来就好了
一步一步用maven创建ssm的web项目
然后在src/main/resources文件下创建一个spring的配置文件applicationContext.xml
如果eclipse有装插件的话,直接生成spring的配置文件很方便,如果没有的话去百度一下把xml的文件头复制过来就ok了
一步一步用maven创建ssm的web项目
这个时候跑tomcat就不会报错了
spring也整合进来了

测试一下spring有没有整合成功
在applicationContext.xml文件中添加扫描全局

<context:component-scan base-package="com.ssm"></context:component-scan>

在com.ssm.service包下创建一个UserService类

@Service
public class UserService {
	public void testSpring() {
		System.out.println("this is service...");
	}
}

创建一个测试类

public class SpringTest {
	@Test
	public void testSpring() {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService userService = ctx.getBean(UserService.class);
		userService.testSpring();
	}
}

运行结果:
一步一步用maven创建ssm的web项目

接下来整合springmvc了
依赖已经有了,直接配置就可以了,还是在web.xml添加springmvc的依赖
在web.xml内添加

<servlet>
	<servlet-name>springDispatcherServlet</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:springmvc.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>springDispatcherServlet</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

跑一下tomcat会提示springmvc.xml不存在
在src/main/resources下创建一个springmvc.xml的配置文件就可以了
接下来写springmvc.xml的配置信息

<!-- spirngmvc只扫描controller层就可以了,可以在applicationContext.xml文件中的context:component-scan标签下添加
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
这样spring和springmvc就各司其职了 -->
<context:component-scan base-package="com.ssm">
	<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>

springmvc已经配置完了
可以写一个测试方法

@Controller
public class UserController {
	@RequestMapping("test")
	public String test() {
		return "index";
	}
}

一步一步用maven创建ssm的web项目
成功跳转过去

最后要来配置mybatis了
在applicationContext.xml文件中配置mybatis的信息

	<!-- 扫描数据文件 -->
	<context:property-placeholder location="classpath:db.properties"/>
	<!-- 配置c3p0数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="user" value="${user}"></property>
		<property name="password" value="${password}"></property>
		<property name="driverClass" value="${driverClass}"></property>
		<property name="jdbcUrl" value="${jdbcUrl}"></property>
	</bean>
	<!-- 配置mybatis -->
	<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>
		<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
	</bean>
	<!-- 扫描dao层 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.ssm.dao"></property>
	</bean>

在src/main/resources下创建一个mybatis-config.xml文件,保存mybatis的一些其他配置,例如添加分页插件
创建一个文件夹mapper存放与dao层对应的映射文件
一步一步用maven创建ssm的web项目
再添加一个db.properties用来存放数据库连接信息
一步一步用maven创建ssm的web项目
到这里mybatis就已经配置好了
测试一下
在dao层创建一个接口

public interface UserMapper {
	List<User> getUser();
}

在mapper文件夹下创建对应的映射文件,添加以下代码

<select id="getUser" resultType="com.ssm.bean.User">
select * from user
</select>

实体层就不写了
在service测试能不能调用dao层

	@Service
    public class UserService {
    	@Autowired
    	private UserMapper userMapper;
    	public void testSpring() {
    		List<User> list = userMapper.getUser();
    		for(User user : list) {
    			System.out.println(user);
    		}
    	}
    }

测试结果:
一步一步用maven创建ssm的web项目
到这里ssm整合就完成了