springboot

一、spring boot 入门

1、环境搭建

1.1 、jdk1.8
1.2 maven3.39
1.3 idea 2017 x64
1.4 springboot

2、 创建工程与测试

2.1 创建maven工程

项目目录结构

[外链图片转存失败(img-ZPnrUMBb-1566437667331)(E:\markdowm\image\1535696891649.png)]

####2.2 导入springboot依赖

springboot 父项目工程依赖

 <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.12.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

引入springboot web

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
2.3 创建springboot 启动程序

在项目的包的根目录下创建springboot的启动程序,@SpringBootApplication 标注 这个是个springboot 程序。

/**
 *  @SpringBootApplication 标注 这个是个springboot 程序
 *
 */
@SpringBootApplication
public class Springbootmain {

    public static void main(String[] args) {

        SpringApplication.run(Springbootmain.class,args);
}

在这个配置类中,@SpringBootApplication: springboot 配置类

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

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

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

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

	以前我们需要配置的东西,spring boot 帮我们自动配置
@AutoConfigurationPackage 自动配置包

@AutoConfigurationPackage将主配置类,(@SpringBootApplication 标注的类)的所在包及下面所有的种子包里面的组件扫描到spring容器;

**EnableAutoConfigurationImportSelector**:导入哪些组件的选择器;

将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;容器中添加很多自动配置类(xxxAutoConfiguration);就是这个容器中导入场景中所需要使用组件。


@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}
)}
)

有了自动配置类,免去了我们手动的配置注入功能组件等功能;

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

J2EE的整体整合解决方案和自动配置都在:spring-boot-autoconfigure-1.5.12.RELEASE.jar;

2.5 测试程序编写

创建controller 包,项目

创建helloController.java文件

package com.liu.spring.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;

/**
 * @RestController
 * 这个注解代表 rest  和controller
 *
 */
@RestController
public class HelloController {
    /**
     *  @GetMapping 注解路径 url 访问只能使用get的方式请求
     *
     * @return
     */
    @GetMapping("/hello")
     public Map<String,String>  hello(){
        Map<String,String> result = new HashMap<String, String>();
        result.put("msg","hello world!!");
         return result;
     }
}


2.6 测试程序

运行springboot main程序 进行项目启动

[外链图片转存失败(img-uLLchHbU-1566437667332)(E:\markdowm\image\1535696734245.png)]

2.7 使用postman测试

这里测试的时候 注意,使用get 请求进行测试,要不然会报错,拒绝请求,这样就得到了我们想要的结果

[外链图片转存失败(img-zcUvIvir-1566437667332)(E:\markdowm\image\1535697295788.png)]

2.8 springboot 打包部署
2.8.1 springboot 打包

引入maven打包插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
2.8.2 maven 工具打包

使用maven lifecycle 下面的package的打包工具

[外链图片转存失败(img-WSvVzKNd-1566437667333)(E:\markdowm\image\1535697500758.png)]

2.8.3 启动项目

通过java -jar springboot-1.0-SNAPSHOT.jar 的方式进行项目的部署,注意看tomcat启动的端口为8080

e:\work>java -jar springboot-1.0-SNAPSHOT.jar

 此处省略N 多的启动日志
2018-08-31 14:40:48.726  INFO 38760 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s):
 8080 (http)
2018-08-31 14:40:48.734  INFO 38760 --- [           main] com.liu.spring.Springbootmain            : Started Springbootmain in
6.357 seconds (JVM running for 7.618)

3、springboot-start

springboot 通过start 来将各个场景的jar包进行项目导入工作,我们只要关注业务场景即可,无需过多的去关注jar包的导入,只需要选取场景即可。

二、spring boot配置

1 、快速创建springboot工程

IDE都支持使用springInitailer 工具来快速创建springboot工程

选择我们需要的模块,想到会联网创建springboot的项目工程

1.1、目录结构

默认生成springboot项目;

[外链图片转存失败(img-it1NQJhJ-1566437667333)(E:\markdowm\image\1535702087253.png)]

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

2 、配置文件

2.1 整体配置

springboot 使用一个全局的配置文件,配置文件名称是固定的;

application.properties

appication.yml

配置文件的作用,修改springboot的自动配置的默认值;springboot在底层都个我们自动配置好。

以前的配置文件一般为xml格式

yaml :以数据为中心,比json、xml更加简洁

2.2 YAML语法
2.2.1 基本语法

K: 空格v: 表示一对键值对 (空格必须要有)

空格的缩进方式来控制层级关系;只要是左对齐的一列数据都是同一个层级的

server:
  context-path: /springboot
  port: 8090

属性和值也是大小敏感;

2.2.2 值的写法
字面量:普通的值(数值,字符串,布尔)

​ 字符串默认不用加上单引号或者单引号

​ “” :双引号 ;不会转义字符串联的特殊字符;特殊字符会作为本身的意思

​ ‘’:单引号 ;会转义特殊的字符,特殊字符串会当做字符串输出

对象、map(属性和值)

k:v 在下一行来写对象的属性和值;注意缩进

表示一个对象的书写格式    
user:
  name: zhangsan 
  age: 10
  sort: 100
  money: 2000 

行内写法:

user: { name: "zhangsan",age:10,sort: 100,money: 2000}
数组(list、set)

用-值表示数组中的一个元素

pets:
  - cat
  - dog
  - pig

行内写法:

pets: [cat,dog,pig]
2.3 配置文件值注入

配置文件:

user:
  lastName: zhangsan
  age: 10
  boss: false
  brithday: 2018/10/01
  maps: {k1: v1,k2: 12}
  list:
    - lisi
    - zhangsan
    - wangwu
  dog:
    name: 小王
    age: 2

实体文件:

package com.liu.bootquick.bean;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @ConfigurationProperties 配置文件属性和该类的属性相关,进行绑定
 * @Data lombok 生成getset 等方法
 * 只有这个组件是容器中的组件,容器才能提供服务
 */
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date brithday;
    private Map<String,Object> maps;
    private List<Object> list;
    private Dog dog;

}

package com.liu.bootquick.bean;

import lombok.Data;

@Data
public class Dog {

    private String name;

    private Integer age;
}

我们还需要配置文件处理器,配置文件绑定的时候有提示:

<!--导入配置文件处理器-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值