一步一步用maven创建ssm的web项目
使用maven来创建SSM的web项目
第一步创建一个maven工程
创建一个空的maven工程
选择用jar
后面把它转化成web工程
创建成功后
选择项目右键->Properties->Project Facets
点击箭头指向的位置
点击选择Dynamic Web Module
再选择下面的
输入创建webapp的路径,选择创建web.xml文件,一直点击ok就可以了
这个时候已经是web工程了
但是没有添加tomcat还没有添加tomcat的依赖
右键项目->Build Path->Configure Build Path
打开后选择Add Library…
再选择Server Runtime
再选择要使用tomcat就可以了,如果有多个选择的话,尽量选择和自己使用的tomcat对应的版本
这个时候就已经是一个web项目了,可以写一个页面启动tomcat测试一下。
接下来整合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的错误。
没有找到spring的类,这是因为maven的jar没有被添加进来
选择项目右键->Properties->Deployment Assembly ,再选择Add…
选择Java Build Path Entries,再选择next
再选择Maven Dependencies确定就可以了
这个时候跑一下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创建出来就好了
然后在src/main/resources文件下创建一个spring的配置文件applicationContext.xml
如果eclipse有装插件的话,直接生成spring的配置文件很方便,如果没有的话去百度一下把xml的文件头复制过来就ok了
这个时候跑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();
}
}
运行结果:
接下来整合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";
}
}
成功跳转过去
最后要来配置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层对应的映射文件
再添加一个db.properties用来存放数据库连接信息
到这里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);
}
}
}
测试结果:
到这里ssm整合就完成了