SSM项目入门

1.新建Web Project并导入相关jar包在这里插入图片描述
2.web.xml配置Spring MVC的核心控制器DispatcherServlet、字符编码过滤器、以及指定的Spring配置文件所在位置并配置ConetextLoaderListener等
3.配置文件(/resources)
(1)applicationContext-mybatis.xml
applicationContext-mybatis.xml是Spring的配置文件,该文件内的主要配置信息有数据源对象、事务管理,以及MyBatis的配置信息等。
~ 数据源相关配置(含SQL心跳包)。

 <!-- 读取数据库配置文件 -->
<context:property-placeholder location="classpath:database.properties"/>

<!-- JNDI获取数据源(使用dbcp连接池) -->  
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton">
		<property name="driverClassName" value="${driver}" />  
		<property name="url" value="${url}" />  
		<property name="username" value="${user}" />  
		<property name="password" value="${password}" />
		<property name="initialSize" value="${initialSize}"/>
		<property name="maxActive" value="${maxActive}"/>
		<property name="maxIdle" value="${maxIdle}"/>
		<property name="minIdle" value="${minIdle}"/>
		<property name="maxWait" value="${maxWait}"/>
		<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
		<property name="removeAbandoned" value="${removeAbandoned}"/>
		<!-- sql 心跳 -->
		<property name= "testWhileIdle" value="true"/>
		<property name= "testOnBorrow" value="false"/>
		<property name= "testOnReturn" value="false"/>
		<property name= "validationQuery" value="select 1"/>
		<property name= "timeBetweenEvictionRunsMillis" value="60000"/>
		<property name= "numTestsPerEvictionRun" value="${maxActive}"/>
</bean>
心跳是在校验连接的同时,解决数据库重新连接的问题,确保连接池中的连接是真实有效的连接。如:系统正常运行,此时由于某种原因,需将数据库停掉(突发情况,数据库服务器直接宕机),此时连接池中所有连接无效,整个系统的功能不可用,需对数据库服务器和应用服务器重启才能正常访问应用系统,使用系统功能。有SQL 心跳包配置后,数据库重启系统不重启。
事务相关配置。配置事物管理器采用AOP方式进行事物处理,定义所有以com.wsjx.***中wsjx开头的业务方法都会进行事物处理。
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource" ref="dataSource"/>
</bean> 
<aop:aspectj-autoproxy />
<aop:config  proxy-target-class="true">
	<aop:pointcut expression="execution(* *com.wsjx.service..*(..))" id="transService"/>
	<aop:advisor pointcut-ref="transService" advice-ref="txAdvice" />
</aop:config> 
<tx:advice id="txAdvice" transaction-manager="transactionManager">  
    <tx:attributes>  
       <tx:method name="wsjx*"  propagation="REQUIRED" rollback-for="Exception"  />
    </tx:attributes>  
</tx:advice> 
<!-- AOP 事务处理 结束 -->

~配置MyBatis的SqlSessionFactoryBean

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"/>
	<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

~配置MyBatis的MapperScannerConfigurer
在Spring容器中注册MapperScannerConfigurer并注入Mapper接口所在包名,Spring自动查找其下所有Mapper,并自动注册Mapper对应的Map普洱FactoryBean对象。



切记:顺序不能颠倒否则会报错
(2)springmvc-servlet.xml
~配置mvc:annotation-driven/标签(含消息转换器配置)【直接copy就OK】

<mvc:annotation-driven>
	 	<mvc:message-converters>
	 		<bean class="org.springframework.http.converter.StringHttpMessageConverter">
	 			<property name="supportedMediaTypes">
	 				<list>
	 					<value>application/json;charset=UTF-8</value>
	 				</list>
	 			</property>
	 		</bean> 
	 		<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
	 			<property name="supportedMediaTypes">
	 				<list>
	 					<value>text/html;charset=UTF-8</value>
	 					<value>application/json</value>
	 				</list>
	 			</property>
	 			<property name="features">
	 				<list>
	 				 <!--   Date的日期转换器 -->
					  <value>WriteDateUseDateFormat</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

~通过mvc:resources/配置静态文件访问(我是将文件放在了/statics中)

<mvc:resources location="/statics/" mapping="/statics/**"></mvc:resources>

~配置支持文件上传–MultipartResolver

<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->  
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		 <property name="maxUploadSize" value="5000000"/>
		 <property name="defaultEncoding" value="UTF-8"/>
	</bean>

~配置多视图解析器–ContentNegotiatingViewResolver

<!-- 配置多视图解析器:允许同样的内容数据呈现不同的view -->
	<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		<property name="favorParameter" value="true"/>
		<property name="defaultContentType" value="text/html"/>
		<property name="mediaTypes">
			<map>
				<entry key="html" value="text/html;charset=UTF-8"/>
				<entry key="json" value="application/json;charset=UTF-8"/>
				<entry key="xml" value="application/xml;charset=UTF-8"/>
			</map>
		</property>
		<property name="viewResolvers">
			<list>
				<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
					<property name="prefix" value="/WEB-INF/jsp/"/>
					<property name="suffix" value=".jsp"/>
				</bean>		
			</list>
		</property>
	</bean>

~配置拦截器–interceptor(我将拦截器.java放在了/sys中)

<mvc:interceptors>
	<mvc:interceptor>
		<mvc:mapping path="/sys/**"/>
		<bean class="com.wsjx.interceptor.SysInterceptor"/>
	</mvc:interceptor>
</mvc:interceptors>

(3)配置
在这里插入图片描述
(4)配置mybatis-config.xml

<typeAliases>  
         <!--这里给实体类取别名,方便在mapper配置文件中使用--> 
         <package name="com.wsjx.pojo"/>
     </typeAliases> 
     <!--全局延迟加载,所有相关联的实体都被初始化加载-->
 <settings>  
          <!-- changes from the defaults -->  
          <setting name="lazyLoadingEnabled" value="false" />  
      </settings>

4.数据对象模型(com.wsjx.pojo)
5.DAO数据访问接口(com.wsjx.dao.**)
6.系统服务接口(com.wsjx.service.
7.前端控制Controller(com.wsjx.controller.

8.系统工具包
在这里插入图片描述
9.前端页面(/WEB-INF/jsp)和静态资源文件(/WebRoot/statics)
切记:Controller上的@Controller、service中serviceImp中@Service与DAO中Mpaaer路径映射,在applicationContext-mybatis.xml中加自动扫描,代码如下,位置不可颠倒【放在applicationContext-mybatis.xml文件开头】。

<context:component-scan base-package="com.wsjx.service"/> 
    <context:component-scan base-package="com.wsjx.dao"/>  

在springmvc-servlet.xml中加【放在springmvc-servlet.xml文件开头】

<context:component-scan base-package="com.wsjx.controller"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值