博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssm框架的一些基本写法(纯自己总结的,如有雷同纯属巧合)
阅读量:4564 次
发布时间:2019-06-08

本文共 10949 字,大约阅读时间需要 36 分钟。

矫情的介绍一下 

  曾经一个学IT的朋友向我推荐,说博客园是个很好的学习IT知识的地方,从那时起我就结识了它,一直到现在已经3个月了。这是我的第一个写的博客,在其中有些写的不好的地方,还请不吝赐教!

  学习Java语言已经很长时间了,框架方面花了我一段时间,ssh、ssm等都有涉猎,但要是全程自己写出来还是有点难度的。但是在搭建框架的步骤中,我感觉还是有点固定写法的。鉴于此,下面就详细的介绍一下。

ssm框架简介

  1.spring

    Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。

    Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。

  2.springMVC

     SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

   3.mybatis

    mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

整体结构解析

 

 

利用maven整合ssm框架

  1.maven搭建项目结构

  新建文件,若在目录中没有显示出Maven Project,则在other里输入maven进行查找,如下图

 

 

   

  

按照上面的步骤操作完后,eclipse会自动生成目录结构,如下所示,但是会有一些错误:

别急,自有解决办法。打开Errors,会有如下提示:

解决办法:只要在webapp下新建一个WEB-INF,在WEB-INF下新建一个web.xml,然后错误就自动消失

下面开始配置maven的pom.xml。对于pom.xml,我觉得首先要编写的就是编译环境,因此,第一步就是jdk版本的声明。我认为这也是一种固定写法。 

然后第二步就是框架jar的版本的声明,当然,套路哦,但是可以往上加,并不是一成不变的。

 

第三步,我不知道各位大神是怎么搞的,我是直接copy  GitHub上的,然后对于那些需要加上的jar包就加上。好了,我把pom.xml里的所有东西都copy下来吧。

4.0.0
com.lxc
manual_ssm
0.0.1-SNAPSHOT
war
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
UTF-8
5.0.7.RELEASE
3.2.6
1.7.7
1.2.17
junit
junit
4.11
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
c3p0
c3p0
0.9.1.2
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.30
commons-dbcp
commons-dbcp
1.2.2
jstl
jstl
1.2
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.codehaus.jackson
jackson-mapper-asl
1.9.13
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9

2.ssm配置文件

   开始进入正题。

  对于这类的框架搭建,以我的经验或者经历(不知道有没有错),一般会分三步走。至于具体的项目实现这里不做具体说明,主要就是介绍套路,哈哈!

  Well,下面开始吧。

  第一步是完善刚才用maven来搭建好的目录结构。首先在src/main/java目录下,按照java的三层结构,我会从持久层然后应用层最后表现层来进行编写,如下所示。

 

  这个做完之后就是src/main/resources的目录了。在此目录下,一般会放置数据库链接等的配置文件、项目日志类的配置文件以及最重要的spring类的配置文件。 

  至于src/test/java以及src/test/resoures,因为是放置测试类的文件结果集,所以属于不确定的文件,因此不予考虑。

  对于那些表现层的东西,如jsp等,一般会放在这个路径下,大家注意一下

  第二步是编写web.xml的配置文件。

  这个就开始比较套路了。也是分步走,一是写Spring 配置文件的名称和位置的代码,然后是编写监听器,然后就是配置springMVC的前段控制器,由DispatcherServlet所控制。Well,贴上代码。

ContextConfigLocation
classpath:spring-mybatis.xml
org.springframework.web.context.ContextLoaderListener
springDispatcherServlet
org.springframework.web.servlet.DispatcherServlet
ContextConfigLocation
classpath:spring-mvc.xml
1
springDispatcherServlet
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
/*

代码中的步骤3和步骤4感觉可写可不写。当然啦,要是我说的有错可以纠正,毕竟才疏学浅!

  第三步是编写spring类的配置文件。

  这个就得好好说说了。首先从spring-mybatis.xml里入手。相信各位应该知道约束文件是怎么回事(有不知道的可以复制粘贴或者上github官网学习学习),我也就不细说了 

  

  

   先从spring的配置入手。

  1、配置自动扫描(Spring IOC 容器不扫描Controller),<context:component-scan base-package="com.lxc.ssm"></context:component-scan>,当然,包名不同可以自行修改。2.配置文件 db.properties ,<context:property-placeholder location="classpath:db.properties"/>,都是套路。

  3、配置 C3P0 数据源

  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

    <property name="driverClass" value="${jdbc.driver}"></property>
    <property name="jdbcUrl" value="${jdbc.url}"></property>
    <property name="user" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
  </bean>

  4.事务管理器 (JDBC)DataSourceTransactionManager数据源数据管理器,

  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager " >

    <property name="dataSource" ref="dataSource"></property>
  </bean>

  5.启动声明式事务驱动,<tx:annotation-driven transaction-manager="transactionManager"/>

  

  然后进入mybatis的配置。

  1. spring 通过 sqlSessionFactoryBean 获取 sqlSessionFactory 工厂类 ,

   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">    

     <property name="dataSource" ref="dataSource"></property>    

   2、使用mapper 时可以实用化别名(BeanName) 默认引入com.lxc.ssm.entity下的所有类

     <property name="typeAliasesPackage" value="com.lxc.ssm.entity"></property>
   </bean>

  3.打开 sqlSession 会话对象,

  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

    <!--指定基础包,即自动扫描com.lxc.ssm.dao这个包以及它的子包下的所有映射接口类-->
    <property name="basePackage" value="com.lxc.ssm.dao"></property>
    <!--指定sql会话工厂,在上面配置过的 注意使用 sqlSessionFactoryBeanName 避免出现spring扫描组件失效问题 -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
  </bean>

  好了,spring-mybatis的配置文件完成了,赶紧贴上代码吧。

 

View Code

   对写这个博客而言已经快写到最后一步了。接下来就是spring-mvc的配置了

  1、配置自动扫描的包,<context:component-scan base-package="com.lxc.ssm"></context:component-scan>

  2、配置视图解析器。我觉得应该记住类的名字,InternalResourceViewResolver,

  <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
  </bean>

  3.处理静态资源,默认 Servlet 处理,<mvc:default-servlet-handler/>

  4.启动 MVC 注解驱动,<mvc:annotation-driven></mvc:annotation-driven>

  5、启用AOP,<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

  贴上最后一个代码吧,

View Code

 

至此,我所总结的都差不多了。总结还是挺有用的,自己能记住,各位努力吧!

希望各位批评指正!

转载于:https://www.cnblogs.com/lxc116317/p/9332499.html

你可能感兴趣的文章
zabbix-mysql迁移分离
查看>>
jQuery调用WCF 说明
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法
查看>>
lua 函数
查看>>
Git的基本命令
查看>>
四平方和
查看>>
第十八周 12.27-1.2
查看>>
C# IP地址字符串和数值转换
查看>>
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>