根据慕课网项目深入学习SSM和SpringBoot,练手中,将学习笔记做记录,后期会继续更新。
慕课网地址:SSM到Spring Boot-从零开发校园商铺平台-慕课网实战,文末会附上免费视频地址!
先上效果图(此文讲述中最后要完成的结果):
项目介绍
慕课网中关于项目有详细的介绍,就不做过多的说明了。
项目结构及配置文件说明
如题,项目初期采用SSM(Spring+SpringMVC+MyBatis)框架,按照项目加载过程逐一讲解配置文件:
pom.xml
项目使用Maven管理项目相关依赖,配置有Spring、mybatis、数据库、junit等依赖;
web.xml
web项目的核心配置文件,主要配置了SSM的前置控制器DispatcherServlet,主要负责流程的控制;
<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置springMVC需要加载的配置文件 spring-dao.xml,spring-service.xml,spring-web.xml
Mybatis - > spring -> springmvc -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<!-- 默认匹配所有的请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-web.xml
主要配置SpringMVC:1)启用注解驱动;2)静态资源处理;3)配置视图解析器;4)扫描web相关的bean;5、后续权限拦截器的配置;
<!-- 两个标准配置 -->
<!-- 1、启用注解驱动-->
<mvc:annotation-driven/>
<!-- 2、 可以正常访问静态文件,springmvc静态资源处理-->
<mvc:default-servlet-handler/>
<!-- 3.定义视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/html/"></property>
<property name="suffix" value=".html"></property>
</bean>
<!-- 4.扫描web相关的bean -->
<context:component-scan base-package="com.tyron.o2o.web" />
spring-service.xml
业务相关配置:1)扫描service相关的bean;2)配置事务管理器;3)配置基于注解的声明式事务;
<!--1、 扫描service包下所有使用注解的类型 -->
<context:component-scan base-package="com.tyron.o2o.service" />
<!-- 2、 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 3、配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
spring-dao.xml
配置整合mybatis过程:1)配置数据库相关参数;2)配置数据库连接池;3)配置SqlSessionFactory对象;4)配置扫描Dao接口包,并注入;
<!-- 1.配置数据库相关参数properties的属性:${url} -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 2.数据库连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 配置连接池属性 -->
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- c3p0连接池的私有属性 -->
<property name="maxPoolSize" value="30" />
<property name="minPoolSize" value="10" />
<!-- 关闭连接后不自动commit -->
<property name="autoCommitOnClose" value="false" />
<!-- 获取连接超时时间 -->
<property name="checkoutTimeout" value="10000" />
<!-- 当获取连接失败重试次数 -->
<property name="acquireRetryAttempts" value="2" />
</bean>
<!-- 3.配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- 扫描entity包 使用别名 -->
<property name="typeAliasesPackage" value="com.tyron.o2o.entity" />
<!-- 扫描sql配置文件:mapper需要的xml文件 -->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<!-- 给出需要扫描Dao接口包 -->
<property name="basePackage" value="com.tyron.o2o.dao" />
</bean>
mybatis-config.xml
配置mybatis的属性:1)驼峰命名转换;2)列别名替换列名;3)自增主键
<settings>
<!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!-- 使用列别名替换列名 默认:true -->
<setting name="useColumnLabel" value="true" />
<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
<setting name="useGeneratedKeys" value="true" />
</settings>
jdbc.properties
设置数据库相关参数,并将username和password设置为密文;
BaseTest.java
测试类的基类:
/**
* 配置spring和junit整合,junit启动时加载springIOC容器 spring-test,junit
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-dao.xml",
"classpath:spring/spring-service.xml" })
public class BaseTest {
}
附上免费网盘地址:
链接: https://pan.baidu.com/s/1htuUYqw 密码: j1am
如失效,可关注我的公众号,回复“校园商铺”获取最新链接