SSM框架搭建

一.了解SSM框架

SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。

1.持久层:dao层(mapper)层

作用:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。

Dao层首先设计的是接口,然后再Spring的配置文件中定义接口的实现类。
然后可以在模块中进行接口的调用来进行数据业务的处理。(不在关心接口的实现类是哪个类)
数据源的配置以及有关数据库连接的参数都在Spring的配置文件中进行配置。


2.业务层:Service层

作用:Service层主要负责业务模块的逻辑应用设计。

先设计接口然后再设计实类,然后再在Spring的配置文件中配置其实现的关联。(业务逻辑层的实现具体要调用到自己已经定义好的Dao的接口上)这样就可以在应用中调用Service接口来进行业务处理。
建立好Dao之后再建立service层,service层又要在controller层之下,因为既要调用Dao层的接口又要提供接口给controller层。每个模型都有一个service接口,每个接口分别封装各自的业务处理的方法。


3.表现层:Controller层(Handler层)

作用:负责具体的业务模块流程的控制。

配置也同样是在Spring的配置文件里面进行,
调用Service层提供的接口来控制业务流程。
业务流程的不同会有不同的控制器,在具体的开发中可以将我们的流程进行抽象的归纳,设计出可以重复利用的子单元流程模块。


4.View层


作用:主要和控制层紧密结合,主要负责前台jsp页面的表示。

各层之间的联系
DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势,Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。

二.SSM框架搭建

1.新建maven工程

勾选从archetype创建选项

再选中org.apache.maven.arcetypes:maven-archetype-webapp

 自己选择填写工件的名称和其组ID以及其所存放的位置

 maven主路径,用户设置文件,本地仓库都选中apache-maven包里的文件,repositiory是自己创建的。

 2.导入poml依赖

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
 <!--<scope>test</scope>-->
</dependency>
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
  <groupId>com.mchange</groupId>
  <artifactId>c3p0</artifactId>
  <version>0.9.5.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.25</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-expression</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>4.2.6.RELEASE</version>
  <!--<scope>test</scope>-->
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.aspectj/com.springsource.org.aspectj.weaver -->
<!--<dependency>-->
<!--<groupId>org.aspectj</groupId>-->
<!--<artifactId>com.springsource.org.aspectj.weaver</artifactId>-->
<!--<version>1.6.8.RELEASE</version>-->
<!--</dependency>-->

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjweaver</artifactId>
  <version>1.6.8</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>



<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.2.6.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.2.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.2.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>javax.servlet.jsp-api</artifactId>
  <version>2.2.1</version>
  <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
  <groupId>taglibs</groupId>
  <artifactId>standard</artifactId>
  <version>1.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api -->
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>tomcat-servlet-api</artifactId>
  <version>7.0.78</version>
</dependency>

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.1.5</version>
</dependency>

覆盖掉 <dependencies></dependencies>中的内容。

3.创建xml文件

3.1创建database.properties文件

 在java包中创建resources文件,并将其设置为资源根目录

在resources中创建database.properties文件,其中放置的是与数据连接的ip,用户信息

mysqldriver=com.mysql.cj.jdbc.Driver
mysqlurl=jdbc:mysql://192.168.61.141:3306/exam?allowMultiQueries=true
mysqluser=root
mysqlpwd=root
oracleDriver=oracle.jdbc.driver.OracleDriver
oracleUrl=jdbc:oracle:thin:@192.168.61.143:1521:prod
oracleuser=scott
oraclepwd=scott

 

3.2创建applicationContext.xml文件

依旧是在resources中创建applicationContext.xml文件,这其中放的是配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
    <!-- 包的注解扫描 -->
    <context:component-scan base-package="nj.zb.kb21"></context:component-scan>

    <!--数据库配置信息 -->
    <context:property-placeholder location="classpath:database.properties"></context:property-placeholder>

    <!--加载数据 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${mysqlurl}"/>
        <property name="driverClass" value="${mysqldriver}"/>
        <property name="user" value="${mysqluser}"/>
        <property name="password" value="${mysqlpwd}"/>
    </bean>

    <!--配置SqlSessionFactory工厂对象-->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--加载数据源-->
        <property name="dataSource" ref="dataSource"></property>
        <!--扫描实体类包-->
        <property name="typeAliasesPackage" value="nj.zb.kb21.pojo"></property>
        <!--扫描Sql的配置文件(dao接口的实现xml文件)-->
        <property name="mapperLocations" value="classpath:mappers/ExamDao.xml"></property>
    </bean>
    <!--完成映射类-->
    <bean id="scannerConFigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
        <property name="basePackage" value="nj.zb.kb21.dao"></property>
    </bean>
    <!--事务管理-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

    <mvc:annotation-driven/>
</beans>

3.3创建mappers目录,映射dao层接口 (这个步骤要放在dao层对象接口完成后)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="nj.zb.kb21.dao.ExamDao">
    <insert id="addStudent">
        insert  into exam.student
            (id,name,age,gender,telephone,email,classId)
        values
            (null,#{name},#{age},#{gender},#{telephone},#{email},#{classId})
    </insert>


    <select id="getAllClasses" resultType="nj.zb.kb21.pojo.Classes">
        select id, name
        from exam.classes;
    </select>


    <select id="getAllStudent" resultType="nj.zb.kb21.pojo.Student">
        select s.id,
               s.name,
               s.age,
               s.gender,
               s.telephone,
               s.email,
               s.classid
        from exam.student s
                 left join classes c
                           on s.classid = c.id
    </select>

</mapper>

4、创建controller,dao,pojo,service,test文件夹 

 5.创建dao层,实现需求方法

 6.创建service层,调用dao层,实现业务逻辑

通过new dao层接口,创建对象,来实现接管dao层

 再创建service java类来实现方法

 7.controller控制层,通过new Service层接口对象,调用方法,实现web界面增删改查

 8.全部创建完后,在webapp.WEB-INF的web.xml文件中完成文件配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
  <display-name>Archetype Created Web Application</display-name>
  <welcome-file-list>
    <welcome-file>index1.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>Dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <filter>
    <filter-name>CharacterEncodingFilter</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>
  </filter>
  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

 

 9.测试类测试

package test;

import nj.zb.kb21.dao.ExamDao;
import nj.zb.kb21.pojo.Classes;
import nj.zb.kb21.pojo.Student;
import nj.zb.kb21.service.ExamService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class ExamTest {
    @Test
    public void testGetAllStudent(){
//        System.out.println("hello java");
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        System.out.println(context);
        ExamDao examDao = (ExamDao)context.getBean("examDao");
        System.out.println(examDao);
        List<Classes> allClasses = examDao.getAllClasses();
        for (Classes cls:allClasses){
            System.out.println(cls);
        }
        System.out.println("------------------------");
        List<Student> allStudent = examDao.getAllStudent();
        for (Student stu:allStudent){
            System.out.println(stu);
        }
    }

    @Test
    public void testGetAllClasses(){
//        System.out.println("hello getClasses");
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        System.out.println(context);
        ExamService examService = (ExamService)context.getBean("examService");
        System.out.println(examService);

    }

}

 10.tomcat运行

运行需要主要:

http://192.168.1.101:8080/loadstu.do
http://192.168.1.101:8080/loadcla.do
http://192.168.1.101:8080/savestu.doname=zhh&age=21&gender=1&telephone=12345532222&email=zhh@qq.com&classid=1

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架是指Spring+SpringMVC+Mybatis的组合,是一种常用于JavaWeb开发的三大框架的整合。下面我将用300字回答关于基于SSM框架搭建Java服务端的问题。 首先,我们需要搭建开发环境。首先,确保已经安装好Java、Tomcat、MySQL等软件。然后,在IDE中创建一个新的Web项目,导入SSM框架的相关依赖,如Spring、SpringMVC、Mybatis等。接下来,配置web.xml文件,设置DispatcherServlet来分发HTTP请求,并配置Spring和Mybatis的配置文件。 其次,我们需要编写代码。首先,创建一个实体类,用于与数据库中的表进行映射。然后,创建一个接口,定义好对该实体类进行CRUD操作的方法。接着,创建一个实现该接口的Mapper类,使用Mybatis提供的注解或XML来实现具体的SQL语句。最后,创建一个Service类来调用Mapper类的方法,并加入相应的业务逻辑。 然后,我们需要配置Spring的配置文件。在该文件中,我们需要配置数据源、事务管理器、扫描Mapper接口和Service类的路径等。通过配置文件,将Mapper接口和对应的实现类以及Service类注入到Spring容器中,方便进行管理和调用。 最后,我们需要配置SpringMVC的配置文件。在该文件中,我们需要配置Request、HandlerMapping、ViewResolver等相关信息。通过配置文件,将Controller类注入到SpringMVC容器中,并配置URL与方法的映射关系。 综上所述,基于SSM框架搭建Java服务端需要搭建开发环境,编写代码,配置Spring和SpringMVC的配置文件。通过整合Spring、SpringMVC和Mybatis,我们可以快速开发出高效可靠的Java服务端。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值