IDEA版SSM框架

1.概述

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。

  • Spring(业务层):核心思想是IOC(控制反转),即不再需要显式地 'new' 一个对象,而是让Spring框架帮你来完成这一切。
  • SpringMVC(控制层&&表现层):SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作
  • mybatis(持久层):mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

2.实现

  • 项目结构

  • 创建一个tbl_employee表,用来测试:

(1).导入以下依赖

 <!--数据库驱动-->
     <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.6</version>
      </dependency>

      <!--配置spring的IOC容器-->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-expression</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>

      <!--spring数据库模块-->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-orm</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>

      <!--spring的web模块-->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>

      <!--JSTL部分-->
    <dependency>
       <groupId>org.apache.taglibs</groupId>
       <artifactId>taglibs-standard-spec</artifactId>
       <version>1.2.1</version>
    </dependency>
    <dependency>
       <groupId>org.apache.taglibs</groupId>
       <artifactId>taglibs-standard-impl</artifactId>
       <version>1.2.1</version>
    </dependency>

      <!--面向切面编程-->
    <dependency>
      <groupId>net.sourceforge.cglib</groupId>
      <artifactId>com.springsource.net.sf.cglib</artifactId>
      <version>2.2.0</version>
     </dependency>
      <dependency>
          <groupId>org.aopalliance</groupId>
          <artifactId>com.springsource.org.aopalliance</artifactId>
          <version>1.0.0</version>
      </dependency>
      <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
          <version>1.8.13</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aspects</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>

      <!--运行依赖的日志-->
      <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>1.2</version>
      </dependency>

      <!--mybatis依赖-->
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.5</version>
      </dependency>

      <!--mybatis与spring整合需要的适配包-->
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>2.0.2</version>
      </dependency>

      <!--连接池-->
      <dependency>
          <groupId>c3p0</groupId>
          <artifactId>c3p0</artifactId>
          <version>0.9.1.2</version>
      </dependency>

(2).创建一个JavaBean类Employee,属性有

private Integer id;
private String lastName;
private String email;
private String gender;

(3).EmployeeMapper接口中有一个方法,获取所有表中所有的员工信息

public List<Employee> getEmps();

     与之对应的Sql语句的映射文件EmployeeMapper.xml:

<select id="getEmps" resultType="com.ls.bean.Employee">
	select * from tbl_employee
</select>

全局配置文件mybatis-config.xml,开启驼峰命名法:

<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>>
</settings>

 

(4).前期准备做好之后,接下来写配置文件,重点来啦!!!!

  • web.xml
 <!--springIOC容器随web一起启动-->
  <!--spring配置-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--springMVC配置-->
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  • springMVC的配置文件spring-servlet.xml,SpringMVC只控制网站的跳转逻辑,所以只扫描控制器:
 <!--
    use-default-filters="false":只扫描控制器
    默认为true:则扫描所有的控制器
    -->
    <context:component-scan base-package="com.ls" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--视图解析器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--处理动态资源-->
    <mvc:annotation-driven></mvc:annotation-driven>
    <!--处理静态资源-->
    <mvc:default-servlet-handler/>
  • Spring的配置文件,applicationContext.xml,Spring管理所有的业务逻辑,扫描除了控制器以外的注解:
  <context:component-scan base-package="com.ls">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--引入数据库的配置文件-->
    <context:property-placeholder location="classpath:dbconfig.properties"/>

    <!--Spring用来控制业务逻辑,数据源,事务控制,aop-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!--spring的事务管理器-->
    <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--开启基于注解的事务-->
    <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>

    <!--整合mybatis
    目的:1.spring来管理所有组件,mapper的实现类
              service==>Dao   @Autowired:自动注入mapper
        2.spring用来管理事务:spring声明式事务
    -->
    <!--创建SqlSessionFactory对象-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--指定全局配置文件的位置-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <!--指定mapper配置文件的位置-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
    </bean>


    <!--扫描所有的mapper接口的实现,让这些mapper能够自动注入
    base-package:指定mapper接口的包名
    -->
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ls.dao"/>
   </bean>

(5).添加业务逻辑,实现业务:

index.jsp作为程序的入口,通过点击这个超链接跳转到另一个页面,从而获得所有的员工信息

  • index.jsp:
<a href="emps">查询所有的员工</a>
  • 业务层EmpService:
@Service
@Transactional
public class EmpService {

    @Autowired
    private EmployeeMapper employeeMapper;

    public List<Employee> getEmp(){
        return employeeMapper.getEmps();
    }
}
  • 表现层EmpController:

根据页面的地址进入控制器,通过调用业务层的方法,获取数据封装到map集合中,传给list.jsp页面

 

@Controller
public class EmpController {

    @Autowired
    EmpService empService;

    @RequestMapping("/emps")
    public String emp(Map<String,Object> map){
        List<Employee> emps= empService.getEmp();
        map.put("allEmps", emps);
        return "list";
    }
}
  • list.jsp

 使用jstl(c标签)获取数据:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page isELIgnored="false" %>
<table border="1">
    <tr>
        <td>id</td>
        <td>lastName</td>
        <td>email</td>
        <td>gender</td>
    </tr>
    <c:forEach items="${allEmps}" var="emps">
        <tr>
            <td>${emps.id }</td>
            <td>${emps.lastName }</td>
            <td>${emps.email }</td>
            <td>${emps.gender }</td>
        </tr>
    </c:forEach>
</table>

3.效果

  

4.结束啦!

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 IntelliJ IDEA 中搭建 SSM 框架的步骤: 1. 打开 IntelliJ IDEA,创建一个新项目。 2. 选择 Maven,并选择 Create from archetype。 3. 在搜索框中输入 maven-archetype-webapp,选择该 archetype 创建项目。 4. 在项目目录下找到 pom.xml 文件,添加 SSM 框架所需的依赖。以下是常用的依赖: ``` <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.2.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.2.RELEASE</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.4</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> ``` 5. 添加 Spring 配置文件。在 src/main/resources 目录下新建 applicationContext.xml 和 spring-mvc.xml 文件。具体内容可以根据项目需要进行配置。 6. 添加 MyBatis 配置文件。在 src/main/resources 目录下新建 mybatis-config.xml 和 mapper.xml 文件。具体内容可以根据项目需要进行配置。 7. 在 src/main/java 目录下创建包结构,并添加相应的 Java 文件。例如,创建一个 com.example.controller 包,并创建一个 IndexController 类。 8. 在 web.xml 文件中配置 DispatcherServlet。添加以下代码: ``` <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:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 9. 运行项目,测试是否正常。 以上是在 IntelliJ IDEA 中搭建 SSM 框架的基本步骤。当然,具体步骤还是要根据项目需要进行调整和修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值