SpringBoot

目录

一、 引言

为什么要用SpringBoot?

SpringBoot如何实现敏捷开发?

二、 构建SpringBoot项目

2.1快速构建SpringBoot

       

2.2 简单测试

2.2.1 pom.xml导入web依赖

2.2.2 编写简单的Controller代码

2.2.3  启动SpringBoot内置tomcat

 2.2.4 浏览器输入请求地址

 三、 SpringBoot常用注解

3.1  @Configuration和@Bean

 3.2 @SpringBootApplication

3.3  @ComponentScan      

3.4 @Repository

3.5 @Service

3.6 @RestController

3.7 @ResponseBody

3.8 @Component

3.9 @AutoWired

3.10 @RequestMapping

3.11 @RequestParam

3.12 @PathVariable

四、 SpringBoot常用配置

4.1 SpringBoot的配置文件格式

4.2 多环境配置

4.3 引入外部配置文件信息

4.4 热加载

4.4.1 导入依赖

4.4.2 settings配置

4.4.3 重新构建项目


一、 引言

为什么要用SpringBoot?

        相信大家已经发现SSM(spring+springMVC+Mybatis)项目随着项目的迭代而项目中需要编写的xml配置文件也变得特别杂冗繁多,这个时候不利于我们敏捷式开发,而SpringBoot就可以解决这个问题

SpringBoot如何实现敏捷开发?

        springboot遵循约定大于配置,什么意思呢?  简言之就是如果没有自主配置  项目就会使用springboot的内置的默认配置,当然如果springboot的默认配置不能满足需求 可以自定义配置

        springboot默认只有一个.properties 或yml文件

二、 构建SpringBoot项目

2.1快速构建SpringBoot

        

 项目简单构建完成后的项目结构如下图:

-src
  -main	  
    -java
      -包名
        启动类.java			# 需要将controller类,放在启动类的子包中或者同级包下
    -resources
      -static				  # 存放静态资源的
      -templates			   # 存储模板页面的
      application.properties	 # SpringBoot提供的唯一的配置文件
  -test   				      # 只是为了测试用的

2.2 简单测试

2.2.1 pom.xml导入web依赖

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

2.2.2 编写简单的Controller代码

@RestController
public class TestController {

    @GetMapping("/test")
    public String test(){
        return "Hello SpringBoot!";
    }

}

2.2.3  启动SpringBoot内置tomcat

        运行启动类的三种方式

        ①:运行main方法即可

        ②:在maven控制台输入命令  mvn spring-boot:run

        ③:将当前项目打包成一个jar文件,并通过java -jar jar文件

 2.2.4 浏览器输入请求地址

 可以看到成功在页面输出 “Hello SpringBoot!”

 三、 SpringBoot常用注解

3.1  @Configuration和@Bean

  • 之前使用SSM去开发时,在xml文件中编写bean标签,但是SpringBoot不推荐使用xml文件。

  • @Configuration注解相当于beans标签

  • @Bean注解相当于bean标签

  • id=“方法名 | 注解中的name属性(优先级更高)”

  • class=“方法的返回结果”

@Configuration   // 代表当前类是一个配置类
public class UserConfig {
    
    
    @Bean(name = "user1")       // 构建一个实例,放到spring容器中
    public User user(){
        User user = new User();
        user.setId(1);
        user.setName("张三");
        return user;
    }
    
    /*
    <beans ....>            @Configuration
        <bean id="user1" class="com.hrp.demo01.entity.User" />
    </beans>
     */
}

 3.2 @SpringBootApplication

@SpringBootApplication就是一个组合注解:

  • @SpringBootConfiguration就是@Configuration注解,代表启动类就是一个配置类。

  • @EnableAutoConfiguration帮你实现自动装配的,SpringBoot工程启动时,运行一个SpringFactoriesLoader的类通过load方法,以for循环的方式,一个一个加载。,加载META-INF/spring.factories配置类(已经开启的)。

    • 好处:无需编写大量的整合配置信息,只需要按照SpringBoot提供好了约定去整合即可。

    • 坏处:如果说你导入了一个starter依赖,那么你就需要填写他必要的配置信息。

    • 手动关闭自动装配指定内容:@SpringBootApplication(exclude = QuartzAutoConfiguration.class)

  • @ComponentScan就相当于<context:component-scan basePackage=“包名” />,帮助扫描注解的。

3.3  @ComponentScan      

 组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文。

@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。

3.4 @Repository

用于标注数据访问组件,即DAO组件。

使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

3.5 @Service

一般用于修饰service层的组件

3.6 @RestController

用于标注控制层组件(如struts中的action),表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器;它是@Controller和@ResponseBody的合集。

3.7 @ResponseBody

表示该方法的返回结果直接写入HTTP response body中

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

3.8 @Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

3.9 @AutoWired

byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

当加上(required=false)时,就算找不到bean也不报错。

3.10 @RequestMapping

RequestMapping是一个用来处理请求地址映射的注解;提供路由信息,负责URL到Controller中的具体函数的映射,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

3.11 @RequestParam

用在方法的参数前面。例:

@RequestParam String a =request.getParameter(“a”)。

3.12 @PathVariable

路径变量。参数与大括号里的名字一样要相同。例:

RequestMapping(“user/get/mac/{macAddress}”)

public String getByMacAddress(@PathVariable String macAddress){

//do something;

四、 SpringBoot常用配置

4.1 SpringBoot的配置文件格式

SpringBoot的配置文件支持properties和yml,甚至他还支持json。

更推荐使用yml文件格式:

  1. yml文件,会根据换行和缩进帮助咱们管理配置文件所在位置

  2. yml文件,相比properties更轻量级一些

yml文件的劣势:

  1. 严格遵循换行和缩进

  2. 在填写value时,一定要在: 后面跟上空格

4.2 多环境配置

在application.yml文件中添加一个配置项:

spring:
  profiles:
    active: 环境名

在resource目录下,创建多个application-环境名.yml文件即可

在部署工程时,通过 java -jar jar文件 --spring.profiles.active=环境

4.3 引入外部配置文件信息

和传统的SSM方式一样,通过@Value的注解去获取properties/yml文件中的内容。

如果在yml文件中需要编写大量的自定义配置,并且具有统一的前缀时,采用如下方式

// Java程序
@ConfigurationProperties(prefix = "aliyun")
@Component
@Data
public class AliyunProperties {

   private String xxxx;
    
   private ... ...;
}

// 配置文件
aliyun:
  : xxxxxxxxx
  ...

4.4 热加载

4.4.1 导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

4.4.2 settings配置

 ctrl+shift+alt+/   =====>registry=====>compiler.automake.allow.when.app.running  打勾

4.4.3 重新构建项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值