在IDEA中创建maven项目进行SSM整合
- 首先使用IDEA创建一个Maven项目
Create New Project —— Maven —— 选中 Create from archetype —— maven-archetype-webapp
在pom.xml中配置所需要的jar包 - 在src下新建resources(标记为Resources root)、test 的 Directory(目录)
在main下新建java目录夹并标记为Sources Root(放java代码),在test下新建java文件夹并标记为 Test Sources Root(放测试代码)。 - 在main的java里写java代码,在java目录下新建包:
① model
写javabean实体类;
可以通过lombok来自动生成getter、setter方法
需要在pom.xml中配置lombok,并在pojo类上加@Data注释
② mapper
写实体类的映射接口,以及配置xml文件。
注意:
配置文件mapper标签中空间名namespace的属性值要是接口类名的全路径;
对数据库crud(增删改查)操作的标签id属性值要与接口类中方法名一致;
在resources下导入db.properties、log4j.properties;
新建spring-dao.xml配置文件(等同于mybatis-config.xml);
在配置文件中 :
<!-- 加载属性文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 配置数据源 -->value值根据db.properties写
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driverClass}"></property>
<property name="url" value="${jdbc.jdbcUrl}"></property>
<property name="username" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置SqlSessionFactoryBean 引用数据源对象 指定mybatis配置文件-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="typeAliasesPackage" value="com.xt.model"></property>
<property name="mapperLocations" value="classpath*:com/xt/mapper/*Mapper.xml"></property>
</bean>
配置web.xml
<!-- 配置文件加载 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-*.xml</param-value>
</context-param>
<!-- 上下文监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- / 代表所有请求 /* 代表除了jsp之外的请求 -->
③ exception
自定义异常,继承RuntimeException;
添加一个参的构造方法。(快捷键:alt+insert)
④ service、serviceimpl
在service中写接口抛出一个自定义异常,在serviceimpl中实现方法;
配置spring-service.xml
<!-- 扫描包,引用dao配置文件中的dataSource -->
<context:component-scan base-package="com.xt"></context:component-scan>
<!-- 如果涉及事务,要加载事务驱动 -->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
⑤ controller
进行serviceimpl中方法的调用,并处理异常。
配置spring-servlet.xml配置文件,加载视图解析器
<context:component-scan base-package="com.xt"></context:component-scan>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
4.页面的所有请求必须先访问controller