百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

泰涨知识 | SSM框架搭建流程(ssm框架搭建详细步骤)

ccwgpt 2024-10-29 13:31 51 浏览 0 评论

目录


1.SpringMVC项目搭建流程

2.检查一下idea插件

3.创建项目需要使用的文件夹目录

4.检查WebApp目录是否正确

5.检查Webapp目录

6.引入所有相关SSM框架的依赖包(最完全版本)

7.创建Spring以及SpringMVC配置文件

8.修改Web.xml文件中的相关配置

9. 配置SpringMVC相关内容

10.Mybatis集成Spring、SpringMVC的配置

11.SSM完整调用demo案例


1.SpringMVC项目搭建流程


2.检查一下idea插件

Spring以及SpringMVC相关插件


lombok插件

MyBatis插件


3.创建项目需要使用的文件夹目录


4.检查WebApp目录是否正确

5.检查Webapp目录


6.引入所有相关SSM框架的依赖包(最完全版本)

<dependencies>

    <!-- springMVC、Spring相关依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.3.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.2.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.9</version>
    </dependency>
    <!--测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--日志-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.21</version>
    </dependency>
    <!--J2EE-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!--mysql驱动包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.22</version>
    </dependency>

    <!-- Fastjoson JSON处理工具 --><!-- TODO:gai -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.78</version>
    </dependency>

    <!-- 文件上传下载-->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.4</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>

    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
      <scope>provided</scope>
    </dependency>


    <!-- 数据校验 -->
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>1.1.0.Final</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
      <version>3.1.0.CR2</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>5.1.0.Final</version>
    </dependency>

    <!-- @ResponesBody的新解决方案-jackson包 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.12.3</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.12.3</version>
    </dependency>
    <!-- Swagger2 - fasterxml -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.12.3</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml</groupId>
      <artifactId>classmate</artifactId>
      <version>1.5.1</version>
    </dependency>



    <!-- mybatis核心包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.7</version>
    </dependency>
    <!-- mybatis/spring包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>

    <!-- 阿里的druid连接池 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.8</version>
      <scope>compile</scope>
    </dependency>

    <!--日志-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>

    <!--swagger-->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.6.1</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.6.1</version>
    </dependency>

    <!-- github分页 -->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>4.2.1</version>
    </dependency>


  </dependencies>


7.创建Spring以及SpringMVC配置文件


把生成的两个配置文件拖拽到resource目录下


8.修改Web.xml文件中的相关配置

(1)在resource目录创建Mybatis配置文件(名字叫mybatisConfig.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: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/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">


    <!-- 集成SpringMVC时Mybatis配置文件也将使用SpringBean的方式来配置 -->


</beans>

2)修改web.xml-加载mybatis配置文件以及项目名称

<web-app>
    <!-- 修改项目名称与创建的项目文件同名即可 -->
  <display-name>CZ_SSM1</display-name>
    <!-- 当spring容器加载时就会加载mybatis配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <!-- 指向mybatis配置文件路径 -->
        <param-value>classpath:mybatisConfig.xml</param-value>
    </context-param>

(3)修改web.xml-SpringMVC前端控制器配置

<!-- SpringMVC-前端控制器Servlet配置 -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!-- 当前端控制器servlet实例时,加载SpringMVC-前端控制器配置文件 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- 指向生成的dispatcher-servlet.xml -->
            <param-value>classpath:dispatcher-servlet.xml</param-value>
        </init-param>

        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <!-- 拦截所有客户端请求进入mvc的前端控制器 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

(4)修改web.xml-添加Spring字符编码过滤器

<!-- 字符编码过滤器 -->
  <!-- spring字符编码过滤器 -->
  <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>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

(5)修改web.xml- 添加SpringMVC-REST请求规范过滤器

<!-- REstFul规范请求 -->
  <filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

(6)修改web.xml-添加阿里druid连接池数据监控中心url路径映射

<!-- 阿里的druid连接池数据监控中心servlet -->
  <servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DruidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>


<!-- http://localhost:8080/项目上下文/druid   进入阿里数据源监控中心 -->

9.配置SpringMVC相关内容

(1)各自小组创建自己的业务相关包,一定要在根目录下创建

附录:控制器层、业务接口层、业务实现层代码demo

/*控制器层*/
package com.czdsj.base.controller;

import com.czdsj.base.service.BaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.annotation.Resource;

/**
 * 学生基础信息采集模块-控制器层
 * 2022/6/1
 */
@Controller
@RequestMapping("/base")
@Slf4j //日志注解 自动生成一个log对象
public class BaseController {

    /**
     * 自动注入接口实现层, name是实现层类型首字母小写即可
     */
    @Resource(name = "baseServiceImpl")
    private BaseService baseService;


    /**
     * 页面跳转方法:返回值是String类型返回一个逻辑视图名
     * 页面跳转方法不需要写@ResponseBody注解 ,请求类型是GET类型
     * @return
     */
    @RequestMapping(value = "/toLogin",method = RequestMethod.GET)
    public String toLogin(){

        log.info("页面跳转-到登录页面");

        return "逻辑视图名";

    }
}
/*业务接口层*/
package com.czdsj.base.service;

/**
 * 学生基础信息采集-业务接口层
 * 2022/6/1
 */
public interface BaseService {
}
/*业务接口层*/
package com.czdsj.base.service;

/**
 * 学生基础信息采集-业务接口层
 * 2022/6/1
 */
public interface BaseService {
}


(2)配置SpringMVC配置文件(dispatcher-servlet.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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

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

    <!-- 最好手动去打 -->
    <!-- 依赖注入、控制器、service、@Valid -->
    <mvc:annotation-driven />

    <!-- 扫描注解,加载实例  :  @Component @Controller @Service -->
    <context:component-scan base-package="com.czdsj" />

    <!-- 文件上传解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="50000000"/>
        <property name="defaultEncoding" value="UTF-8" />
    </bean>

    <!-- 静态资源文件引入 -->
    <mvc:resources location="/static/" mapping="/static/**" />

</beans>

(1)配置视图解析器

配置视图文件夹

配置视图解析器

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

(2)配置自动包扫描加入ioc容器

<!-- 最好手动去打 -->
    <!-- 依赖注入、控制器、service、@Valid -->
    <mvc:annotation-driven>

    <!-- 扫描注解,加载实例  :  @Component @Controller @Service -->
    <context:component-scan base-package="com.czdsj" />

(3)文件上传下载解析器

<!-- 文件上传解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="50000000"/>
        <property name="defaultEncoding" value="UTF-8" />
    </bean>

(4)静态资源引入

1.创建一个静态资源文件夹

一定要创建在webapp目录下,与WEB-INF目录同级

2.在配置文件中配置静态资源路径

<!-- 静态资源文件引入 -->
    <mvc:resources location="/static/" mapping="/static/**" />

3.配置maven打包静态资源

在pom.xml文件中<build>标签下

 <!-- maven静态资源打包 -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
          <include>**/*.js</include>
          <include>**/*.css</include>
          <include>**/*.html</include>
        </includes>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
          <include>**/*.js</include>
          <include>**/*.css</include>
          <include>**/*.html</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>


10.Mybatis集成Spring、SpringMVC的配置

(1)引入依赖(注意不要重复引入,之前的demo中已经帮大家引入了)

<!-- mybatis/spring包 实现Spring的ORM框架接口 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>

(2)编写Mybatis配置文件

1.创建一个外部配置mybatis数据源以及连接属性的配置文件(db.properties)

创建在resource目录下

#mybatis数据源以及连接池相关属性配置文件
#mysql驱动
driver=com.mysql.cj.jdbc.Driver

#mysql的jdbc连接地址
url=jdbc:mysql://localhost:3306/huawei?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8

#mysql数据库的用户名
userName=root

#mysql数据库的密码
pwd=root123456

#连接池初始化连接数量
initialSize=10
#同一时间点允许活跃的最大连接数
maxActive=30
#最小连接池数量(当没有连接时自动创建新连接的数量)
minIdle=1
#每个连接请求的最长时间(单位毫秒)
maxWait=60000

2.在mybatis配置文件中引入properties的配置

<!-- 引入配置文件 -->
    <bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <!-- value值指向你的外部mybatis属性配置文件 -->
        <property name="location" value="classpath:db.properties" />
    </bean>

3.mybatis配置文件配置数据源(基于阿里巴巴druid连接池的配置)

<!-- 配置连接池(阿里druid连接池) -->
<!-- !!!!!写着${}的地方都要修改成你自己的配置引入 !!!!!!-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          init-method="init" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driver}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <!-- 配置初始化大小、最小、最大 -->
    <property name="initialSize" value="${initialSize}" />
    <property name="minIdle" value="${minIdle}" />
    <property name="maxActive" value="${maxActive}" />

    <!-- 配置获取连接等待超时的时间 -->
    <property name="maxWait" value="${maxWait}" />

    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    <property name="timeBetweenEvictionRunsMillis" value="60000" />

    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="300000" />
        <property name="testWhileIdle" value="true" />

        <!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
        <property name="testOnBorrow" value="true" />
        <property name="testOnReturn" value="false" />

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />

        <!-- 这里配置提交方式,默认就是TRUE,可以不用配置 -->
        <property name="defaultAutoCommit" value="true" />
        <!-- 验证连接有效与否的SQL,不同的数据配置不同  mysql:select 1  ;oracle : select 1 from dual -->
        <property name="validationQuery" value="select 1 from dual" />
        <property name="filters" value="wall,stat" />
        <property name="proxyFilters">
            <list>
                <ref bean="logFilter" />
                <ref bean="stat-filter" />
            </list>
        </property>
    </bean>
    <!-- 慢SQL记录 -->
    <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
        <!-- 慢sql时间设置,即执行时间大于50毫秒的都是慢sql -->
        <property name="slowSqlMillis" value="50"/>
        <property name="logSlowSql" value="true"/>
    </bean>
    <bean id="logFilter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">
        <property name="dataSourceLogEnabled" value="true" />
        <property name="statementExecutableSqlLogEnable" value="true" />
    </bean>

4.配置创建SQLSessionFactory工厂类

<!-- spring和mybatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- ref指向数据源配置id -->
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描包中的类生成别名,如:com.a.User包 别名可以是User或user -->
        <property name="typeAliasesPackage" value="com.czdsj" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/czdsj/**/mybatis/dao/*.xml"></property>

    </bean>

5.配置sqlSession创建规则

 <!-- DAO接口所在的包名,spring会自动查找其下的类,!注意这句 value="sqlSessionFactory",不是ref而是value -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 指向mybatis接口文件所在的包 -->
        <property name="basePackage" value="com.czdsj.**.mybatis.dao" />
        <!-- value指向配置sqlSessionFactory类的id -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

6.配置mybatis分页

a.引入pagehelper分页工具(注意不要重复导入依赖,之前案例中已经导入)

<!-- github分页 -->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>4.2.1</version>
    </dependency>

b.在mybatis配置文件中配置分页拦截器

<!-- pageHepler分页拦截器 -->
    <bean id="pageInterceptor" class="com.github.pagehelper.PageHelper">
        <property name="properties">
            <props>
                <prop key="helperDialect">mysql</prop>
                <prop key="reasonable">true</prop>
                <prop key="supportMethodsArguments">true</prop>
                <prop key="params">count=countSql</prop>
            </props>
        </property>
    </bean>

c.在SQLSessionFactory配置中添加分页工具配置

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/huawei/mybatis/dao/*.xml"></property>
    <!-- 自动扫描包中的类生成别名,如:com.a.User包 别名可以是User或user -->
        <property name="typeAliasesPackage" value="com.czdsj" />

        <!-- 附加的工具包 指向分页工具拦截器的id -->
        <property name="plugins" ref="pageInterceptor" />

    </bean>

7.配置@Mapper注解的自动扫描

作用:在业务层中要使用mybatis的mapper接口实例时可以从ioc容器中自动注入调用,在mybatis配置文件中配置

<!-- 自动扫描@Mapper注解,将mybatis接口自动实现实例且交由给springMVC管理 -->
    <context:component-scan base-package="com.czdsj.**.mybatis.dao">
        <context:exclude-filter type="annotation"
                                expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

11.SSM完整调用demo案例:

(1)编写数据库与java映射实体对象

package com.czdsj.base.mybatis.domain;

import lombok.Data;

/**
 * 数据库Student表与JAVA映射的实体类
 * 2022/6/1
 */
@Data
public class StudentDo {

    private String code;

    private String userName;

    private Integer age;

}

(2)编写mybatis映射接口(注意:一定要加@Mapper注解在类上)

package com.czdsj.base.mybatis.dao;

import com.czdsj.base.mybatis.domain.StudentDo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * Mybatis接口层
 * 2022/6/1
 */
@Mapper
public interface BaseMapper {

    /**
     * 查询出所有的学生信息-接口方法
     * @return
     */
    List<StudentDo> getStudentList();

}

(3)编写接口同名对应的xml映射文件(注意:要在同一个包且名字完全相同)

<?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="com.czdsj.base.mybatis.dao.BaseMapper">


    <select id="getStudentList" resultType="studentDo">
        select * from student
    </select>


</mapper>

(4)编写controller层

package com.czdsj.base.controller;

import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.service.BaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * 学生基础信息采集模块-控制器层
 * 2022/6/1
 */
@Controller
@RequestMapping("/base")
@Slf4j //日志注解 自动生成一个log对象
public class BaseController {

    /**
     * 自动注入接口实现层, name是实现层类型首字母小写即可
     */
    @Resource(name = "baseServiceImpl")
    private BaseService baseService;


    /**
     * 页面跳转方法:返回值是String类型返回一个逻辑视图名
     * 页面跳转方法不需要写@ResponseBody注解 ,请求类型是GET类型
     * @return
     */
    @RequestMapping(value = "/toLogin",method = RequestMethod.GET)
    public String toLogin(){

        log.info("页面跳转-到登录页面");

        return "index";

    }

    /**
     * 查询学生的所有数据-返回json
     * @return
     */
    @RequestMapping(value = "/getStudentList",method = RequestMethod.GET)
    @ResponseBody
    public Object getStudentListData(){

        log.info("查询学生的所有数据");

        //控制器层调用-业务接口
        List<StudentDo> studentList = baseService.getStudentList();

        return studentList;

    }

}

(5)编写业务层接口

package com.czdsj.base.service;

import com.czdsj.base.mybatis.domain.StudentDo;

import java.util.List;

/**
 * 学生基础信息采集-业务接口层
 * 2022/6/1
 */
public interface BaseService {

    /**
     * 获取学生的所有数据
     * @return
     */
    List<StudentDo> getStudentList();

}

(6)编写业务层实现-调用mybatis接口实例

package com.czdsj.base.service.impl;

import com.czdsj.base.mybatis.dao.BaseMapper;
import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 学生基础信息采集-业务实现层
 * 2022/6/1
 */
@Service
public class BaseServiceImpl implements BaseService {

    /**
     * 通过容器自动注入mybatis接口的实现
     */
    @Autowired
    private BaseMapper baseMapper;

    /**
     * 获取学生的所有数据  业务接口层调用实现层方法
     * @return
     */
    @Override
    public List<StudentDo> getStudentList() {

        //实现层方法-调用mybatis接口
        List<StudentDo> studentList = baseMapper.getStudentList();

        return studentList;
    }
}


相关推荐

Java七大热门技术框架源码解析(25章) 完结

获课》aixuetang.xyz/5699/Hibernate与MyBatis源码级PK:ORM框架的两种哲学在Java持久层框架领域,Hibernate与MyBatis代表了两种截然不同的设计哲学。...

【25章】Java七大热门技术框架源码解析

获课》aixuetang.xyz/5699/Java高级面试:七大框架源码精讲与实战解析在当今Java技术生态中,对主流框架源码的深入理解已成为高级开发者面试的核心竞争力。掌握Spring、MyBat...

饿了么董事长吴泽明兼任CEO,韩鎏分管即时物流中心

饿了么调整组织架构。2月11日,饿了么董事长吴泽明(花名:范禹)通过公司全员信宣布饿了么最新组织调整:即日起,吴泽明将兼任饿了么CEO,韩鎏(花名:昊宸)专注分管即时物流中心,继续向吴泽明汇报。吴泽明...

饿了么100%迁至阿里云,快速扩容可支持1亿人同时点单

来源:环球网6月17日,记者获悉,饿了么已完成100%上云,所有业务系统、数据库设施等均已迁移至阿里云。高峰期,饿了么可在阿里云上快速扩容,可以支持1亿人同时在线点单,这意味着饿了么的服务能力再次全面...

饿了么组织架构调整:董事长吴泽明兼任CEO 韩鎏专注即时物流中心管理

近日,饿了么董事长吴泽明(花名:范禹)通过公司全员信宣布饿了么最新组织调整:即日起,吴泽明将兼任饿了么CEO,韩鎏(花名:昊宸)专注分管即时物流中心,继续向吴泽明汇报。吴泽明在内部信中表示,考虑即时物...

饿了么组织架构调整:董事长吴泽明兼任CEO

Tech星球2月11日消息,据新浪科技报道,今日饿了么董事长吴泽明(花名:范禹)通过公司全员信宣布饿了么最新组织调整:即日起,吴泽明将兼任饿了么CEO,韩鎏(花名:昊宸)专注分管即时物流中心,继续向吴...

饿了么又调整了组织架构,董事长吴泽明兼任CEO

2月11日,饿了么董事长,花名为范禹的吴泽明,通过公司全员信宣布最新组织调整:从即日起,吴泽明将兼任饿了么CEO。公司原CEO,花名为昊宸的韩鎏今后专注分管即时物流中心,继续向吴泽明汇报。在内部信中,...

SpringBoot项目快速开发框架JeecgBoot——Web处理!

Web处理JeecgBoot框架主要用于Web开发领域。下面介绍JeecgBoot在Web开发中的常用功能,如控制器、登录、系统菜单、权限模块的角色管理和用户管理。首先启动后台项目,将其导入IDE...

腾讯即将开源Kuikly:基于Kotlin的纯原生跨端解决方案

IT之家3月4日消息,腾讯日前在端服务网站发布预告,即将开源Kuikly跨端开发框架。预告海报介绍称,Kuikly是基于KotlinKMM技术、客户端开发友好的全新跨端解决方案,可...

Python构建MCP服务器完整教程:5步打造专属AI工具调用系统

模型控制协议(ModelControlProtocol,MCP)是一种专为实现AI代理与工具解耦而设计的通信协议,为AI驱动应用程序的开发提供了高度的灵活性和模块化架构。通过MCP服务器,AI代...

Python3使用diagrams生成架构图(python模块制作)

目录技术背景diagrams的安装基础逻辑关系图组件簇的定义总结概要参考链接技术背景对于一个架构师或者任何一个软件工程师而言,绘制架构图都是一个比较值得学习的技能。这就像我们学习的时候整理的一些Xmi...

Python 失宠!Hugging Face 用 Rust 新写了一个 ML框架,现已低调开源

大数据文摘受权转载自AI前线整理|褚杏娟近期,HuggingFace低调开源了一个重磅ML框架:Candle。Candle一改机器学习惯用Python的做法,而是Rust编写,重...

Python Web 框架(Python Web 框架)

Tornado、Flask、Django三个PythonWeb框架的主要区别和适用场景:特点/框架TornadoFlaskDjango类型异步非阻塞Web服务器和框架轻量级微框架全功能...

构建并发布你的自定义 Python 包(python如何创建自定义模块)

Python让你可以重用代码,并将代码分享给他人以节省时间和精力。所以,当你编写了一些方便的脚本,希望你的同事或其他人也能使用时,接下来该怎么做呢?这篇文章就来解决打包和分发的问题。我们将专注于将你...

Python 应用开发框架 BeeWare 简明实用教程

1.BeeWare简介BeeWare是一个Python框架,用于开发跨平台原生应用。它支持Android、iOS、Windows、macOS和Linux,并提供原生用户体验。2.安装B...

取消回复欢迎 发表评论: