新手小白整合SSM框架
SSM中各层作用及关系
1.持久层:DAO层(mapper层)(属于mybatis模块)
- DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。
- DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。
- 然后在Spring的xml配置文件中定义此接口的实现类,就可在其他模块中调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是哪个类,DAO层的jdbc.properties数据源配置,以及有 关数据库连接的参数都在Spring的配置文件中进行配置。
2.业务层:Service层(属于spring模块) - Service层:主要负责业务模块的逻辑应用设计。也就是项目中你看到的Service包。
- Service层的设计首先是设计接口,再设计其实现的类。也就是项目中你看到的service+impl包。
- 接着再在Spring的xml配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。
- 最后通过调用DAO层已定义的接口,去实现Service具体的实现类。
3.控制层/表现层:Controller层(Handler层) - Controller层:主要负责具体的业务模块流程控制,也就是你看到的controller包。
4.View层 (属于springMVC模块) - 负责前台jsp页面的展示,此层需要与Controller层结合起来开发。
- Jsp发送请求,controller接收请求,处理,返回,jsp回显数据。
SSM项目包
项目的包名应该是公司的域名倒置+包名
1.entity 实体的包
2.dao 用于出来数据库交互的接口累
3.controller 这是用于写控制器的包
4.mapper 这是用与实现dao里面的方法(mapper 里面放的是xml文件)
5.service 这是一个服务的包
6.serviceImpl 这是一个处理业务逻辑的包
7.util 这是放工具类的包
现在开始整合
- 先是Spring跟mybatis整合
整合需要多一个spring-mybatis.jar 的包
如下是整合的代码(我是引入的外部文件)
<!--把jdbc.properties引入小毛驴中 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 创建连接 吧jdbc.properties的值引入 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<!--这是连接名 com.mysql.jdbc.Driver -->
<property value="${jdbc.driverClassName}" name="driverClassName" />
<!--这是连接路径 jdbc:mysql://localhost:3306/数据库名 +设置编码 -->
<property value="${jdbc.url}" name="url" />
<!-- 数据库用户名-->
<property value="${jdbc.username}" name="username" />
<!-- 数据库用户密码-->
<property value="${jdbc.password}" name="password" />
</bean>
配置好之后开始让mybatis交出控制权
<!-- 在spring中创建SessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 把数据源引入 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 配置它的映射xml的地址 -->
<property name="mapperLocations" class="classpath:com/etc/mapper/*.xml"></property>
</bean>
<!--获取控制权 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
<!-- com.etc.dao 就是dao接口的包 -->
<property name="basePackage" value="com.etc.dao"></property>
</bean>
<!-- 这是一个扫描器 -->
<context:component-scan base-package="com.etc"/>
这样spring-mybatis就整合差不多了
springMVC配置
springmvc就是处理前端传过来的请求 并给与响应
- 代码如下
<!--开启注解支持 -->
<mvc:annotation-driven/>
<!-- 这是放行静态资源 静态资源如下1.html 2.css 等等 -->
<mvc:default-servlet-handler/>
<!-- 配置一个视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这个是在控制器返回页面时候会自动加前缀 比如view/xxx页面 -->
<property name="prefix" value="/WEB-INF/view/"></property>
<!-- 这个是在控制器返回页面时候会自动加后缀 比如view/xxx.jsp页面 -->
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置控制器扫描 -->
<context:component-scan base-package="com.etc.controller"/>
web.xml的配置
代码如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="MS_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- 配置一个前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 这里加载的是springmvc.xml 如果不写默认是spring-Serlver -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 标记容器是否在启动的时候就加载这个servlet。
当值为0或者大于0时,表示容器在应用启动时就加载这个servlet; -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- /指的是拦截所以请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 加载 applicationContext.xml 也就是刚刚整合spring和mybatis的xml-->
<context-param>
<param-name>contextConfigLacation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 这里要注意一下 监听器一定要写 非常重要 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 过滤器主要是设置编码格式 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>Encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ForceEncoding</param-name>
<param-value>True</param-value>
</init-param>
</filter>
</web-app>
以上就是ssm简单整合了,写得不是很好,仅供参考
来源:CSDN
作者:A litlle hug�
链接:https://blog.csdn.net/xiaoyanghnl/article/details/103960055