黑马程序员技术交流社区

标题: 【广州校区】+【原创】SpringBoot [打印本页]

作者: 余大麻    时间: 2019-8-1 14:37
标题: 【广州校区】+【原创】SpringBoot
本帖最后由 余大麻 于 2019-8-1 14:40 编辑

1. SpringBoot 入门A. SpringBoot 简介B. 微服务B. maven 配置
[XML] 纯文本查看 复制代码
<profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>


C. HelloWorld 入门案例
[XML] 纯文本查看 复制代码
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

编写一个主程序;启动Spring Boot应用
[Java] 纯文本查看 复制代码
package com.study.springboot;

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

/**
* @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
*/
@SpringBootApplication
public class HelloWorldMainApp {
    public static void main(String[] args) {
        // 把 SpringBoot 启动起来
        SpringApplication.run(HelloWorldMainApp.class,args);
    }
}

编写 Controller
[Java] 纯文本查看 复制代码
package com.study.springboot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String sayHello() {
        return "HelloWorld!";
    }
}

[XML] 纯文本查看 复制代码
<!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

D. HelloWorld 案例研究
[XML] 纯文本查看 复制代码
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>

<!-- 父项目的父项目 -->
<!-- 它来真正管理Spring Boot应用里面的所有依赖版本 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

导入依赖
[XML] 纯文本查看 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

E. SpringBoot 的主程序类细节
[Java] 纯文本查看 复制代码
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
                @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
                @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
    .....
}

2. 使用 Spring Initializer 快速创建 Spring Boot 项目A. 默认 SpringBoot 的项目结构
[XML] 纯文本查看 复制代码
resources
    |___> satic : 保存所有的静态资源
    |___> templates: 保存所有的模板页面(默认是jar包,使用嵌入tomcat,默认是不支持 jsp 的,可以使用模板引擎)
    |___> application.properties : 应用的配置文件

B. 配置文件
[XML] 纯文本查看 复制代码
friends:
    lastName: zhangsan
    age: 20

[XML] 纯文本查看 复制代码
friends: {lastName:"zhagnsan", age: 23}

数组
[XML] 纯文本查看 复制代码
pets:
    - cat[mw_shl_code=java,true]@NoArgsConstructor
@ToString
@Data
public class Dog {
    private String name;
    private Integer age;
}
@NoArgsConstructor
@ToString
@Data
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birthday;

    private Map<Object, Object> maps;
    private List<Object> lists;
    private Dog dog;
}

    - pig
    - dog[/mw_shl_code]
[XHTML] 纯文本查看 复制代码
pets: ["cat", "dog", "pig"]

C. 取值
[Java] 纯文本查看 复制代码
@NoArgsConstructor
@ToString
@Data
public class Dog {
    private String name;
    private Integer age;
}

[Java] 纯文本查看 复制代码
@NoArgsConstructor
@ToString
@Data
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birthday;

    private Map<Object, Object> maps;
    private List<Object> lists;
    private Dog dog;
}


. properties 配置文件的编码问题




















欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2