一、 Spring Boot 概述

一)简介

  1. Spring Boot是基于Spring 框架开发的全新框架, 用来简化新Spring应用的初始化搭建和开发过程;
  2. Spring Boot 整合了许多框架和第三方库配置,几乎达到了“开箱”

二)SpringBoot优点

  1. 可快速构建独立的Spring应用
  2. 直接嵌入Tomcat、Jetty和Undertow服务器(无需部署WAR文件)
  3. 提供依赖启动器简化构建配置
  4. 极大程度的自动化配置Spring和第三方库
  5. 提供生产就绪功能
  6. 极少的代码生成和XML配置

二、Spring Boot 入门程序

  1. 创建一个 java 项目
  2. 在该项目下创建一个 Maven 项目
  3. 配置Spring Boot 的相关依赖

artifactid 的名字一定不能包含空格和中文符号

<?xml version="1.0" encoding="UTF-8"?>
 <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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SpringBoot_deom</artifactId>
 // 千万不要有空格或者中文符号
 <version>1.0-SNAPSHOT</version>
 <parent> 
<groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.2.2.RELEASE</version> </parent>
 <dependencies> <!-- 引入Web场景依赖启动器 --> <dependency> <groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId>
 </dependency> 
</dependencies> 
</project>
  1. 创建一个启动类 命名为 SpringBootMain 这个类 要放在最外层

@SpringBootApplication: 表示该类为主程序启动类

在Main 方法中用 springApplication.run()方法来启动主程序类,

该方法的第一个参数为 该类的名称,第二个参数为 main 方法的参数

package com.zujiale.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootMain { public static void main(String[] args) { SpringApplication.run(SpringBootMain.class,args); } }

springboot电话呼叫 springbootssm_springboot电话呼叫

  1. 创建一个Controller 包 用来存放 HelloBoot 类

@RequestMapping("/boot/hello") public String hello(){ return "Hello Spring boot"; }

  1. 运行主程序 运行成功示例图:

springboot电话呼叫 springbootssm_java_02

  1. 访问地址: localhost:端口号/ 要访问的地址

springboot电话呼叫 springbootssm_spring_03


三、SpringBoot 原理分析

一) Spring Boot 依赖管理

  1. Spring-boot-starter-parent 依赖: 通过标签对一些常用技术框架的依赖文件进行统一版本号的管理。
  2. Spring-boot-starter-web 依赖: 对Web 开发场景所需要的依赖文件进行了统一管理。

二) Spring Boot 自动配置

@SpringBootApplication注解标注类的main方法 是启动应用入口,它能够扫描Spring组件并自动配置SpringBoot,是注解的组合,

三个核心注解:

  1. @SpringBootConfiguration :

标注在类上,表示是一个SpringBoot的配置类,允许在上下文中注册额外的bean 或者导入其他配置项

  1. @EnableAutoConfiguration

开启自动配置功能,包含两个注解:

  • @AutoConfigurationPackage: 与@CommponentScan 很类似,默认扫描路径就是主启动类下所在的包
  • @Import: 本身就是把一个类导入到IOC容器中

AutoConfigurationImportSelector: 自动配置导入选择器,自动配置核心功能是通过此实现的

  1. @ComponentScan

自动加载并扫描符合条件的组件或者bean,将其定义加载到IOC容器中。 注解会默认扫描启动类所在的包以及包下的所有类,也可以自定义不扫描的bean


四、SpringBoot 配置文件

一)SpringBoot 全局配置文件

存放在 src/main/resource 目录或类路径的/config

同属性,properites 优先级高,不同属性,共同生效

  1. application.properties
  2. application.yaml
  3. application.yml (推荐使用)

五、SpringBoot 整合MyBatis

一) 创建对数据库和数据表

二) 配置依赖:

  1. Mysql:

            mysql

            mysql-connector-java

  1. MyBatis 依赖

            org.mybatis.spring.boot

            mybatis-spring-boot-starter

           1.3.0

  1. 数据源类型配置, (阿里巴巴的Druid 数据源)

    com.alibaba

    druid-spring-boot-starter

    1.1.16

三)编写配置文件: application.yml 进行数据库连接

其中 springboot 是数据库名称

spring:

  datasource:

    druid:

      driver-class-name: com.mysql.cj.jdbc.Driver

      url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC

      username: root

      password: root

四)创建 主启动类 SpringBootMaIN

@SpringBootApplication public class SpringBootMain { public static void main(String[] args) { SpringApplication.run(SpringBootMain.class,args); } }

五)创建 Controll、Service 以及Dao 层

  1. Controller 层

@Autowired private UserService userService; @RequestMapping("/login") public String Login(String username,String password){ if(userService.isUser(username,password)){ return "欢迎登录!!"; }else return "用户名和密码错误"; }

  1. Service 层
  • impl 接口:

@Service public interface ServiceImpl { public Boolean isUser(String username,String password); }

@Service public class UserService implements ServiceImpl {

@Autowired private UserMapper userMapper;

@Override public Boolean isUser(String username, String password) {

     User user=(User) userMapper.isUser(username,password);

   System.out.println("user: "+user);

   if(user!=null){ if(user.getUsername()!=null || user.getPassword() !=null){

   return true;

   }else {

return false;

}

}else

   return false;

} }

  1. Dao 层

// UserMapper 接口

@Mapper public interface UserMapper { public User isUser(@Param("n") String username, @Param("p") String password); }


// UserMapper.xml 文件 在此文件中可进行增删改查


<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC

"-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.zjl.demo.dao.UserMapper">

<select id="isUser" resultType="com.zjl.demo.User.User"> select * from stu where username=#{n} and password=#{p} </select>

</mapper>

// 在 resources 创建对应的UserMapper 文件

** 注意:

  • 文件的目录要与 接口文件路径一致
  • .xml 文件要和接口名一致
  • namespace 要与quanmul
  1. 登录页面: Login.html 可直接通过:http://localhost:8080/Login.html 访问到 通常放在 static目录下

也可是: /META-INF/resources /respirces /static /public 优先级从前往后排列

<!DOCTYPE html> <html lang="en">

<head> <meta charset="UTF-8">

<title>登录</title> </head>

<body> <form action="/login" method="post">

<label>用户名:</label><input type="text" name="username" id="username" ><br>

<label >密码:</label><input type="text" name="password" id="password" ><br>

<button type="submit">登录</button>

</form>

</body>

</html>

静态资源访问

访问映射默认是 /**

注意:

一) 自定义静态资源访问前缀:

默认是无前缀的, 如果要求加,则需要在配置文件中进行配置:

spring:

  mvc:

    static-path-pattern: /static/** 

此时,系统默认的静态资源目录就失效了