ssm框架学后总结——个人笔记

ssm框架学习的第一个小应用,做完之后的总结
学习视频为B站UP主狂神说

整和视频链接
ssm学习笔记链接
应用下载(免费)

注:内容包含个人的某些理解,主要为帮助初学者理解,因而有不当之处希望大神不吝赐教

ssm框架学后总结——个人笔记_第1张图片

各层之间的关系:

  • controller层:控制器,接收前端,操作service层(表现层(Handler))
  • dao层:接口+mapper,操作数据库 (持久层 mapper层、)
  • pojo层:实体类(model、domain、bean)
  • service层:接口、继承接口的类 控制dao层(服务层)
  • View层:jsp前端页面

前端 --> controller --> service --> dao -->数据库

其中service层dao层代码类似。

ssm controller层和dao层之间为什么会有service层?

为了解耦:

用DAO接口,那么持久层用Hibernate,还是用myBatis,还是 JDBC,随时可以替换,不用修改业务层Service类的代码。


依赖注入(DI)和自动装配:

依赖注入的本质就是装配,装配是依赖注入的具体行为。

https://blog.csdn.net/lwj_199011/article/details/51512873


java web 中的${pageContext.request.contextPath }是什么意思

优点: 它的作用是取出部署应用程序的名字,这样不管如何部署,所用的路径都是正确的

缺点:其他工具无法正确解析它


关于底层配置:

  • applicationContext.xml
  • database.properties
  • mybatis-config.xml
  • spring-dao.xml
  • spring-mvc.xml
  • spring-dao.xml

applicationContext.xml

spring 配置,整个所有配置

<import resource="spring-dao.xml"/>
<import resource="spring-service.xml"/>
<import resource="spring-mvc.xml"/>

database.properties

数据源

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

mybatis-config.xml

mybatis配置

可以整合进spring-dao.config中

spring-dao.xml

配置dao层----操作数据库,可以整合mybatis.xml配置文件


<context:property-placeholder location="classpath:database.properties"/>

<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}"/>

    
    <property name="maxPoolSize" value="30"/>
    <property name="minPoolSize" value="10"/>
    
    <property name="autoCommitOnClose" value="false"/>
    
    <property name="checkoutTimeout" value="10000"/>
    
    <property name="acquireRetryAttempts" value="2"/>
bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    
    <property name="dataSource" ref="dataSource"/>
    
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    
    <property name="basePackage" value="com.kuang.dao"/>
bean>

spring-mvc.config作用3个:

  • 1.由service控制;
  • 2.操作数据库;
  • 3.数据库数据载体为dao包中的类。

所以步骤1,2,3都是和数据库相关,告诉程序选择什么数据库,4和dao包相关,告诉程序dao包的位置。

sqlSessionFactoryBuild–>sqlSessionFactory–>sqlSession

sqlSession提供增删改查的方法。

spring-mvc.config

spring-mvc的配置,和整个web相关的配置

ssm包括的是mybatis spring 和springmvc,只有springmvc是和web相关的

<mvc:annotation-driven />   
<mvc:default-servlet-handler/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
bean>
<context:component-scan base-package="com.kuang.controller" />

spring-service.config

spring-service层的配置文件

<context:component-scan base-package="com.kuang.service" />
<bean id="BookServiceImpl" class="com.kuang.service.BookServiceImpl">
    <property name="bookMapper" ref="bookMapper"/>
bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    
    <property name="dataSource" ref="dataSource" />
bean>

web.xml

web配置文件

一个总的servlet,

<servlet>
    <servlet-name>DispatcherServletservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    <init-param>
        <param-name>contextConfigLocationparam-name>
        
        <param-value>classpath:applicationContext.xmlparam-value>
    init-param>
    <load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
    <servlet-name>DispatcherServletservlet-name>
    <url-pattern>/url-pattern>
servlet-mapping>

spring 自带的过滤器,处理乱码

<filter>
    <filter-name>encodingFilterfilter-name>
    <filter-class>
        org.springframework.web.filter.CharacterEncodingFilter
    filter-class>
    <init-param>
        <param-name>encodingparam-name>
        <param-value>utf-8param-value>
    init-param>
filter>
<filter-mapping>
    <filter-name>encodingFilterfilter-name>
    <url-pattern>/*url-pattern>
filter-mapping>
<session-config>
    <session-timeout>15session-timeout>
session-config>

你可能感兴趣的:(ssm框架,网站开发,java,开发语言,后端)