Spring Boot学习记录(二、开发部署)

编辑器IDEA,运行环境jdk-1.8

 

1.创建hello world

1.创建springboot依赖包

<!--springboot依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

  <parent>……</parent>为父项目,spring-boot-starter-parent也有父项目,他的父项目是spring-boot-dependencies,是springboot版本仲裁中心:他来管理springboot应用里面的所有依赖版本;之后写依赖无需版本(不在spring-boot-dependencies下的依赖依然需要写版本)。

  导入的spring-boot-starter-web依赖,【spring-boot】场景启动器,帮我们导入了web模块正常运行s所依赖的组件。

  SpringBoot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入z这些starter相关场景的所有依赖都会导入进来。要用什么功能就启动他的启动器。

 

2.创建主程序

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @SpringBootApplication标注一个主程序,说明这是一个springboot应用
 */
@SpringBootApplication
public class HelloWorld {
    public static void main(String[] args) {
        /*启动spring应用*/
        SpringApplication.run(HelloWorld.class,args);
    }
}

  @SpringBootApplication:SpringBoot应用标注在某个类上说明这个是springboot主配置类,springboot就应该运行这个类的main方法来启动springboot应用。(ps,main类快捷创建方式psvm)

  @SpringBootConfiguration:springBootd 配置类;

    标注在某个类上,表示这是一个springboot配置类;

    @Configuration:配置类上标注这个注解;

      配置类——配置文件;配置类也是容器的一个组件;@Component

  @EnableAutoConfiguration:开启自动配置功能;

    以前需要配置的东西,springboot自动配置;

  @AutoConfigurationPackage:自动配置包

    @Import(AutoConfigurationPackages.Register.class):

    spring的底层注解@Import,给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Register.class;

  将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到spring容器(例:如果controller或controller所在包与主配置类,也就是main所在的类不在同一个包下,无法扫描到)

 

  springboot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中;以前需要配置的东西自动配置类都帮我们;

  J2EE的整体整合解决方案和自动配置都在springboot-autoconfigure-2.1.8.RELESE.jar;

 

3.创建controller类

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "hello world!";
    }

}

(ps:@Controller与@ResponseBody合并可用RestController代替)

 

4.回到主程序,执行代码。运行成功后,浏览器输入localhost:8080/hello

 

2.简化部署

1.在pom.xml内添加如下代码:

<!--该插件可以将应用打包成可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

 

2.点击右侧maven,双击你的项目下的lifecycle-package。最终打包内容在项目目录下target下。

cmd运行方式:

进入jar所在目录,(这里你的jar包名称为xxx.jar)

java -jar xxx.jar

即使运行环境没有tomcat也能运行

 

3.快速创建springboot项目

使用Spring Initializer

  1. 菜单栏file -> new -> project -> Spring initializer;
  2. 选择自己的jdk,点击next;
  3. 填包名与组织名,其他可不变;
  4. 选择所需模块,点击下一步。

从springboot官方模板下创建项目(需联网)

 

默认生成的springboot项目:

  • 主程序已经生成好了,我们只需要我们自己的逻辑;
  • resources文件夹目录
    • static:保存所有静态资源:js,css,images;
    • templates:保存所有的模板页面:(springboot默认jar包使用嵌入式的tomcat,默认不支持jsp页面);可以使用模板引擎(freemarker、thymeleaf);
    • application.properties:springboot的应用的配置文件;

 

(ps@RestController=@Controller+@ResponseBody)

posted @ 2020-02-19 19:45  苏道羲  阅读(182)  评论(0编辑  收藏  举报