概述SpringBoot框架

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发 过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,而专注于业 务逻辑的编程。 SpringBoot并不是一个新的技术框架,主要作用是简化spring应用的开发,依赖【约定优于配置】的核 心思想,只需要通过少量代码就可以创建一个产品级的Spring应用,并可以达到开箱即用的目标约定优于配置是一种软件设计范式,目的在于减少配置的数量或者降低理解难度。日常工作中,开 发规范可以在一定程度上减少bug数量,增加可读性和可维护性。

SpringBoot的约定优于配置主要体现在 1、maven目录结构的约定 2、SpringBoot默认的配置文件以及配置文件中配置属性的约定。 3、对于SpringMVC的依赖自动依赖内置的Tomcat容器。 4、对于starter组件自动完成装配 SpringBoot四大核心
1、自动配置auto-configuration针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相 关配置。
2、起步依赖starters告诉Spring Boot需要什么功能,它就能引入需要的库。
3、命令行界面cli这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统 项目构建
4、Actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查 看、相关功能统计等。

SpringBoot的特性

1、创建独立Spring应用程序。
2、嵌入式Tomcat,Jetty容器,无需部署WAR包。
3、简化Maven及Gradle配置。
4、尽可能的自动化配置Spring。
5、直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等。
6、无需代码生成及XML配置 SpringBoot优点 使编码变简单、提供一个starter POMs使配置变简单、内置Tomcat和Jetty容器,使部署变简单、提供 了一系列大型项目中常见的非功能性特性使监控变简单 SpringBoot缺点 版本更新较快,可能出现较大变化;因为约定大于配置,所以经常会出现一些很难解决的问题 SpringBoot适用场景 SpringBoot就是SpringMVC简化配置的一个具体体现,其实只要是spring适合的业务场景都适合,并且 也不用考虑作为新技术导致的技术不确定性,因为SpringBoot实际就是Spring MVC的一种展现方式,特 别适合业务并不成熟的新兴互联公司、喜欢追求新技术与优雅编程体验的公司和个人、具有极客精神的 公司和个人或者小型外包团队、基于云服务的软件提供商。 当然并不适应那些技术沉淀多年的大型开发团队,因为,同样也没有人愿意,将自己写了大把的xml文 件删掉。

Hello SpringBoot

1、创建项目 start.spring.io IDE中可以使用官方提供的初始化器创建Spring Initializr 使用官方提供的webUI的方式创建 https://start.spring.io

概述

2、pom文件—maven

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
     所有的springBoot项目需要依赖于spring-boot-starter-parent,[不过 不能依赖可以使用import导入]。引入spring-boot-dependencies可以提供版本仲裁。如果 不使用版本仲裁也允许开发者自行定义版本号
        
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.d</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo513-22</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-core -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>9.0.46</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>

        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3、主类
主类用于启动当前的SpringBoot应用,主类其实就是一个包含main方法的类,这个类上必然有一个注解 @SpringBootApplication

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

4、核心配置文件 src/main/resources/application.properties
springBoot中的核心配置文件有properties和yaml两种不同的格式,建议使用application.yml

配置服务器对应的端口号,key是springBoot中提供的标准配置名 
server.port=9999

5、定义Controller类
需要SpringBoot自动扫描,所以将类定义在主包或者其子包中,不能是其它位置

package com.d.action;

import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
@RestController
 public class HelloController {
  @RequestMapping("/hello") 
 public String sayHello(String username){
 if(username==null || username.trim().length()<1) 			   username="SpringBoot";
   String msg="Hello "+username+"!"; return msg;
    	} 
    }

6、运行主类则可以启动应用,不需要额外安装服务器
单元测试
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的 sUnit的xUnit家族中为最成功的一个。 JUnit有它自己的JUnit扩展生态圈。
xUnit是一套基于测试驱动开发TDD的测试框架,其中的断言机制:将程序预期的结果与程序运行的最终 结果进行比对,确保对结果的可预知性
被测试程序—业务类
spring要求面向接口编程

public interface HelloServ {
 public int add(int k1,int k2); 
 }

版权声明:本文为weixin_53829213原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>