SpringBoot项目

一、关于SpringBoot介绍

1. 什么是Spring Boot

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建
以及开发过程。
随着动态语言的流行(Ruby、Groovy、Scala、Node.js)。java的开发显的格外的笨重,繁多的
配置,低下的开发效率、复杂的部署流程以及第三方技术集成难度大。
在上述环境中springboot应运而生。它使用“习惯优于配置(项目中存在大量的配置,此外还内置
一个习惯性的配置,让你无需进行手动配置)”的理念让你的项目快速的运行起来。使用
springboot很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级别的基于spring框
架的项目,使用springboot你可以不用或者很少的spring配置。

2. 为什么要使用Srping Boot

  • 创建独立的 Spring 应用程序
    springboot可以以jar包的形式独立运行,运行一个springboot项目只需要通过java -jar xxxx.jar来运行
  • 嵌入的 servlet容器(tomcat、jetty或者Undertow),无需部署 WAR 文件
  • 提供starter简化 Maven 配置
  • springboot 提供了一系列的starter pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web时,会自动加入依赖包
  • 自动配置 Spring
  • 开箱即用,没有代码生成,也无需 XML 配置。同时也可以修改默认值来满足特定的需求。
  • 准生产的应用监控
  • springboot提供基于http、ssh、telnet对运行时的项目进行监控, Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。

3. springboot的核心注解及作用

  • SpringBoot主要有三个核心注解:
  • SpringBootConfiguration、EnableAutoConfiguration、ComponentScan,依赖这几个注解可以完成自动装配的功能,将项目中需要的Bean注入到Spring容器里面。
  • SpringBoot程序在启动过程中会解析以下三个注解:
    2.1.SpringBootConfiguration:包含了Configuration注解,实现配置文件,相当于spring中的XML配置文件的applicationContext.xml。
    2.2.ComponentScan:指定扫描范围, 可自动发现和装配Bean,默认扫描SpringBootApplication注解类所在的包路径下文件,所以最好将该启动类放到根包路径下。
    2.3.EnableAutoConfiguration:SpringBoot根据应用所声明的依赖来对Spring框架进行自动配置功能。

4. 常用注解及作用

  • @Mapper
    @Mapper注解是由Mybatis框架中定义的一个描述数据层接口(dao)的注解,注解往往起到的都是一个描述性作用,用于告诉spring框架此接口的实现类由Mybatis负责创建,并将其实现类对象存储到spring容器中。
  • @Autowired
    默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用
  • @Resource
    由J2EE提供,默认按照byName自动注入,@Resource有两个重要的属性:name和type
    Spring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
    @Resource装配顺序:
    如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
    如果指定了name,则从Spring上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
    如果指定了type,则从Spring上下文中找到类型匹配的唯一bean进行装配,找不到或找到多个,都抛出异常
    如果既没指定name,也没指定type,则自动按照byName方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。
    @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入。
  • @Service
    @Service注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到Spring容器中,不需要再在applicationContext.xml文件定义bean了。
  • @RestController
    相当于 @Controller + @ResponseBody 两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。
    ......

二、关于Spring Boot项目

1. 创建项目

  • IDEA中新建project:File->New->project...
  • build.gradle引入spring-boot-starter-web包
plugins {
    id 'idea'
    id 'java'
    id 'org.springframework.boot' version '2.7.5'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group 'cn.qzzg'
version '1.0-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
    mavenCentral()
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

SpringBoot项目_第1张图片

  • 刷新下gradle
    SpringBoot项目_第2张图片
  • 在java下创建主启动类:DemoApplication
    SpringBoot项目_第3张图片
    代码如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
 public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
 }
}
  • 创建一个demo接口
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/main")
public class HelloWorldController {
    @GetMapping("/hello")
    public String test() {
        return "Hello World";
    }
}

SpringBoot项目_第4张图片

  • 修改端口
    未设置端口时,默认为8080,若修改端口,则在resources包下创建application.yml文件,并且设置端口号。
server:
  port: 8088

当application.properties和application.yml两种配置文件同时存在时,application.properties的优先级高于application.yml。

2. 启动项目

对主启动类进行右键操作:Run/Debug 'DemoApplication'即可
SpringBoot项目_第5张图片

  • 启动成功
    image.png

3. 生成jar包

在gradle内,点击Tasks->build->build/jar

SpringBoot项目_第6张图片
SpringBoot项目_第7张图片

4. 部署

4.1. window部署

4.1.1. 脚本运行

新建文本,修改名称为.bat后缀,如start.bat,编辑内容如下:

start java -Dfile.encoding=UTF-8 -jar springbootDemo-1.0-SNAPSHOT.jar --
spring.config.location=application.yml

-Dfile.encoding:编码
-jar:jar文件名
--spring.config.location:配置的文件路径,方便于在不编译jar包的情况下修改配置

4.1.2. 服务自动启动

  • 下载WinSW工具,详见 开发工具 附件
  • 把我们下载好的两个文件放到和我们的项目jar同一个目录下面,然后把WinSW.NET4.exe改个名字。
  • 我这里是改成了springbootDemo.exe,同时把sample-minimal.xml也改成和exe文件一样的名字,也就是springbootDemo.xml。接下来需要对xml文件进行一下编辑,如下。

  
  
  springbootDemo
  
  springbootDemo
  
  这是winsw生成的服务,专门用于启动springboot项目
    
  java
  
   -jar  springbootDemo-1.0-SNAPSHOT.jar

  • 注册服务:在springbootDemo.exe 所在目录打开dos命令窗口,为了防止出现问题,最好用管理员身份打开。
    输入命令
    springbootDemo.exe install
    之后进入到电脑的服务找到我们的服务:springbootDemo,右键启动即可。
    4.1.3. 删除服务

sc delete 服务名

你可能感兴趣的:(springboot)