springboot学习之搭建ssm

一、运行环境

  1. mysql 5.7   64位

  2. jdk 1.8   64位

  3.ecplice 4.5  64位

二、创建一个springboot项目

  1. 在ecplice中创建一个maven的webapp项目

      点击左上角菜单栏中的File -------》New -------》Maven Project

      

  2. 一直点击继续直到如下页面(选中webapp类型的项目进行创建,选好了继续点击next)

      

   3. 输入你的组名和项目名,输入后点击Finish完成创建即可。

      

   4. 完成后你的项目目录如下:

      

   5. 点击你的pom.xml文件,将需要的jar包添加进去

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>SpringbootProject</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Springboot1029 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <!-- 定义公共资源版本,Springboot的父级依赖,这样当前的项目就是Springboot项目了,它提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省略version标签 -->
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
  </properties>
  
  <dependencies>
      <!-- 由于上面引入了父级依赖,所以下面我就不需要指定版本了,包含aop jdbc web等jar资源 -->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 导入mysql的驱动包依赖 -->
    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
    </dependency>
    <!-- 单元测试的依赖包 -->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
    </dependency>

    <!--mybatis的依赖包-->
    <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
    </dependency>
        
    <!-- servlet依赖. -->  
    <dependency>  
            <groupId>javax.servlet</groupId>  
            <artifactId>javax.servlet-api</artifactId>  
            <scope>provided</scope>  
    </dependency>  
           
    <!-- 导入jsp相关依赖,需要注意的是,如果我们不添加这个依赖包,会造成返回的controller的返回的jsp页面出现404错误 -->
    <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
    </dependency>
    <!-- JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat   
            4.x。在JSP2.0中也是作为标准支持的。 不然报异常信息: javax.servlet.ServletException:Circular view   
            path [/helloJsp]: would dispatch back to the current handler URL[/helloJsp]   
            again. Check your ViewResolver setup! (Hint: This may be the resultof an   
            unspecified view, due to default view name generation.) --> 
    <dependency>  
            <groupId>javax.servlet</groupId>  
            <artifactId>jstl</artifactId>  
    </dependency> 
  </dependencies>
  <build>
    <finalName>SpringbootProject</finalName>
    <!-- Spring Boot Maven plugin是springboot的一款插件,能够将Spring Boot应用打包为可执行的jar或war文件 -->
    <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
   </plugins>
   <!--配置Maven 对resource文件 过滤 -->
   <resources>
             <resource>
                 <directory>src/main/resources</directory>
                 <includes>
                     <include>**/*.properties</include>
                     <include>**/*.xml</include>
                 </includes>
                 <filtering>true</filtering>
             </resource>
             <resource>
                 <directory>src/main/java</directory>
                 <includes>
                     <include>**/*.properties</include>
                     <include>**/*.xml</include>
                 </includes>
                 <filtering>true</filtering>
             </resource>
    </resources>
  </build>
</project>

  6. springboot只有一个配置文件application.properties

      位于 src/main/resources :

        

       文件application.properties的内容为:

# 设置tomcat访问的端口号
server.port=8080
# 设置tomcat访问该项目的名称,如果不写,默认无项目名称,该项目名称可以与创建项目的名称不一样,访问时根据这个设置的项目名称来进行访问
# 如下我配置后访问的地址为:http://localhost:8080/SpringbootSSM/ + controller的映射地址
# 如果我们不配置应该访问的地址是: http://localhost:8080/ + controller中的映射地址
# 和我创建项目时使用的名称SpringbootProject无任何直接关系 server.context
-path=/SpringbootSSM # 配置日志显示的等级 logging.level.org.springframework=DEBUG #springboot mybatis #加载 mybatis配置文件 mybatis.mapper-locations = classpath:com/test/mapper/*Mapper.xml mybatis.type-aliases-package = com.test.pojo #配置数据库连接信息 spring.datasource.driver-class-name= com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost:3306/xiaoxiao?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username = xiaoxiao spring.datasource.password = xiaoxiao # jsp页面默认前缀目录 spring.mvc.view.prefix=/WEB-INF/content/ # jsp响应页面默认后缀 spring.mvc.view.suffix=.jsp

  7. 创建项目启动类 (在 src/main/java 下的 com/test 目录下):

      需要注意的是:刚创建好的项目目录下的main下可能没有java这个文件夹,你可以自己创建出来,然后在java的文件夹下创建文件夹用来存放你的项目中的具体内容,这里我创建的com.test两层文件夹,然后在该文件夹下创建对应的存放具体内容的文件夹:例如: 1. controller文件夹用来存放controller文件,2. mapper文件夹用来存放我们的数据库接口和数据库的xml文件,3. pojo文件夹用来存放我们的数据库中表对应的实体类,4. service文件夹用来存放我们的服务层接口和服务层实现类文件,5. until文件夹用来存放我们自己编写的工具类或者静态变量文件

      位置如下图:

        

       SpringbootEnter的文件内容为:

package com.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

# @SpringBootApplication注解用来开始springboot的扫描
# @EnableTransactionManagement 用来启动事务管理
@SpringBootApplication  
@EnableTransactionManagement
public class SpringbootEnter{
        
    public static void main(String[] args){
        SpringApplication.run(SpringbootEnter.class, args);
    }
}

      这时,我们的springboot项目就配置好了,需要注意的是:springboot是通过右键SpringbootEnter.java选择 run_as 中的 Java Application来进行启动项目的,它不需要加入到tomcat的服务器中去,它有自己的内置服务器。

      接下来我们建立一个数据库连接测试,查看我们的springboot配置是否成功配置。

  8. 在数据库中创建表,并在项目中创建对应的实体类

      数据库中创建表:

mysql   -uxiaoxiao -pxiaoxiao           # 登录mysql数据库
use    xiaoxiao                         # 使用xiaoxiao数据库
CREATE TABLE food (
  id int(11) primary key,
  f_name varchar(20) ,
  f_price float,
  f_come float
) ENGINE=InnoDB DEFAULT CHARSET=gbk;    # 创建表
INSERT INTO food VALUES (1,'苹果',11.8,3.2),(2,'橘子',12.7,5.2),(3,'香蕉',18.2,8.2);                  # 向表中插入数据

      项目中创建对应的实体类(位置:src/mian/java/ 下的  com/test/ 下的 pojo/ 下的Food.java文件为该表的实体类):

          

        Food.java的文件内容为:   

package com.test.pojo;

/**
 * 功能: 数据库xiaoxiao中的Food表的实体类
 * @param 
 *         id   食物编号
 *        f_name  食物名称
 *        f_price 食物价格
 *        f_come  食物进价
 */
public class Food {

    private int id;         
    private String f_name;  
    private float f_price;  
    private float f_come;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getF_name() {
        return f_name;
    }
    public void setF_name(String f_name) {
        this.f_name = f_name;
    }
    public float getF_price() {
        return f_price;
    }
    public void setF_price(float f_price) {
        this.f_price = f_price;
    }
    public float getF_come() {
        return f_come;
    }
    public void setF_come(float f_come) {
        this.f_come = f_come;
    }
    @Override
    public String toString() {
        return "Food [id=" + id + ", f_name=" + f_name + ", f_price=" + f_price + ", f_come=" + f_come + "]";
    }
    
}

  9. 创建数据库接口,数据库xml文件(位置在: src/main/java  下的 com/test/mapper 目录下)

       

#  TestMapper.java
package com.test.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.test.pojo.Food;

@Mapper
public interface TestMapper {
    
    /**
     * 功能:查询全部食物信息
     * @return
     */
    public List<Food> selectFood();

}
#  TestMapper.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中的命名空间,一定要写TestMapper.java的位置 -->
<mapper namespace="com.test.mapper.TestMapper">

   <!-- 查询全部食物信息 --> <select id="selectFood" resultType="com.test.pojo.Food"> select * from food </select> </mapper>

  10. 创建服务接口和实现类(位置在: src/main/java  下的 com/test/service 目录下)

      

#   TestService.java
package com.test.service;

import java.util.List;

import com.test.pojo.Food;

public interface TestService {
    
    /**
     * 功能:查询全部食物信息
     * @return
     */
    public List<Food> selectFood();
}
#  TestServiceImpl .java
package com.test.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.test.mapper.TestMapper;
import com.test.pojo.Food;

@Service("testService")
public class TestServiceImpl implements TestService {

    @Autowired
    public TestMapper testMapper;
    
    /**
     * 功能:查询全部食物信息
     */
    @Override
    public List<Food> selectFood() {
        // TODO Auto-generated method stub
        return testMapper.selectFood();
    }

}

  11. 创建controller类(位置在: src/main/java  下的 com/test/controller 目录下)

      

#  TestController.java
package com.test.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.test.pojo.Food;
import com.test.service.TestService;

@Controller
public class TestController {
    
    @Autowired
    @Qualifier("testService")
    public TestService testService;

    /**
     * 功能:测试页面
     * @return
     */
    @RequestMapping("test")
    public String test(){
        System.out.println("进入主页");
        List<Food> lf = testService.selectFood();
        System.out.println(lf);
        return "test";    
    }
    
}

  12. 创建最后跳转的jsp页面(位置 src/main/webapp  下的 WEB-INF/content/test.jsp)

      

# test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 我是jsp页面! </body> </html>

  13. 最后右键启动类SpringbootEnter的启动成功效果如下:

      

  14. 启动成功后,可以访问  http://localhost:8080/SpringbootSSM/test 进行访问,访问成功后效果如下:

      后台打印:

      

      前台页面:

      

原文地址:https://www.cnblogs.com/wangyusu/p/11758315.html