SSM到Spring Boot从零开发校园商铺平台---1、环境搭建及测试
in with 0 comment

SSM到Spring Boot从零开发校园商铺平台---1、环境搭建及测试

in with 0 comment

根据慕课网项目深入学习SSM和SpringBoot,练手中,将学习笔记做记录,后期会继续更新。 慕课网地址:SSM到Spring Boot-从零开发校园商铺平台-慕课网实战,文末会附上免费视频地址!
专栏14篇,参看:http://tyronblog.com/tags/school-o2o
GitHub地址:https://github.com/tyronczt/imooc-o2o
线上演示地址:http://o2o.tyronblog.com:8090/o2o/front/index

先上效果图(此文讲述中最后要完成的结果): 效果图 项目图

项目介绍

慕课网中关于项目有详细的介绍,就不做过多的说明了。

项目结构及配置文件说明

如题,项目初期采用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 如失效,可关注我的公众号,回复“校园商铺”获取最新链接

wechat-qcode