SpringBoot1:helloword、导入依赖、配置项设置,打包方法、lombok、dev-tools、Spring Initailizr、常见注解

本文介绍了Spring Boot的基础知识,包括其作为一站式企业级开发解决方案的角色,以及如何通过微服务实现模块化。详细展示了创建第一个Spring Boot应用的步骤,如配置Maven,编写HelloWorld控制器,和主程序类。此外,还讲解了配置文件的应用,自动配置机制,以及Lombok和Spring DevTools的使用,帮助开发者提高效率和实现热部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全笔记检索

1.简介

简化Spring开发的一个框架。对整个Spring技术栈的大整合
J2EE企业级开发的一站式解决方案。

2.微服务

一个应用应该是一组小型服务,可以通过HTTP的方式来进行互通
每一个功能元素都是可独立替换,和独立升级的软件单元。

3.HelloWord

功能:浏览器发送请求,服务器接收并处理,响应helloworld字符串;
1.创建maven项目,配置pom,导入依赖
导入依赖
每一个springboot工程一定有父项目,父项目有版本号,所以后面的依赖不用写版本号。
父项目主要是依赖管理,声明了所有开发中常见的版本号,所以后面不用写版本号,也可以叫做springboot的自动版本仲裁



  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.导入Springboot相关依赖
HelloController 类

//@ResponseBody//以文本体返回。
//@Controller//说明他能处理请求
@RestController//=ResponseBody+Controller
public class HelloController {

    //意思为接收浏览器的hello请求
   @RequestMapping("/hello")
    public String handle01(){
       return "hello Spring Boot";
   }
}

主程序类

//次注解表明这是一个SpringBoot应用
//编写主程序类,是入口
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);//固定写法,主程序运行
    }
}

3.快速修改配置文件
在这里插入图片描述
SpringBoot中所有的配置都从这里面改applecation.properties

  • 修改配置项:
    配置项属性从官方文档里找,有清单。

Springboot中生成jar包的插件
在pom文件中

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.4.RELEASE</version>
            </plugin>
        </plugins>
    </build>

打包方法↓
在这里插入图片描述

依赖管理和自动配置

每一个springboot工程一定有父项目
父项目主要是依赖管理,声明了所有开发中常见的版本号
每一个springboot工程一定有父项目,父项目有版本号,所以后面的依赖不用写版本号。
可以修改版本号

  • 场景启动器
    spring-boot-start,不同场景pom依赖引入不同的场景启动器
  • 默认扫描规则
    主程序所在的包,及其所在的所有子包,都会被扫描进来。
  • 想要改变扫描路径
@SpringBootApplication(scanBasePackages = "com.atguigu")
  • 所有都有默认配置,都可以通过自定义配置文件applecation.properties来修改
  • 引入那个场景starter,就会启动那些包
  • 自动配置,只有引入场景的自动配置才会生效,不引入的自动配置不生效

配置类


@Import({User.class, DBHelper.class})//将指定类型的组件类导入,可自动创建指定组件的对象,类似于导入外部Bean
//配置类中使用@Bean标注在方法上
//proxyBeanMethods = true配置类的默认是true
@Configuration(proxyBeanMethods = true)//说明他是一个配置类,=原来的xml配置文件
public class Myconfig  {

    //默认是单实例的组件
    @Bean//给容器中添加组件,已方法名作为组件id,即bean的id,返回类型就是组件类型,返回的值就是组件bean在容器中实例
    public User user01(){
        return new User("zhangsan",18);
    }

    @Bean("tom")//也可以自定义名字
    public Pet TomcatPet(){
        return new Pet("Tomcat");
    }
}

注解大全及其含义

SpringBoot官方文档
https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#web

//主程序注解,默认扫描范围为主程序所在的包,及其所在的所有子包,都会被扫描进来。
@SpringBootApplication
//主程序注解,指定扫描范围
@SpringBootApplication(scanBasePackages = "com.atguigu")
//写在组件的类上,标在注解之上
@Import({User.class, DBHelper.class})//将指定类型的组件类导入,可自动创建指定组件的对象,类似于导入外部Bean

//条件装配注解@Conditional,@ConditionalOnBean代表当容器中有名为tom的组件bean时,才注册组件beanuser01
//也可以标注在类上。条件装配
@ConditionalOnBean(name = "tom")
@ImportResource("classpase:beans.xml")//把别的地方配置文件的bean导入Sprigng配置中

//配置绑定1
//ConfigurationProperties配置绑定功能,只有在容器中,才会拥有springboot提供的强大功能
//ConfigurationProperties(prefix = "mycar")配置绑定,绑定为mycar后面的
/*
绑定为配置文件中的mycar
mycar.brand=BYD
mycar.price=1000
*功能位让javaBean和配置文件的东西绑定
* */
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {
    private String brand;
    private Integer price;}

//配置绑定2
//在类上注解
@ConfigurationProperties(prefix = "mycar")//这一行必须要 
public class Car {
    private String brand;
    private Integer price;}
//开启Car属性配置功能
//把Car组件的主动导入到容器中
//在config类上注解
//EnableConfigurationProperties的作用是让ConfigurationProperties注解的类生效
@EnableConfigurationProperties(Car.class)



//配置文件中debug=true,开启自动配置报告,可以查看那些配置类生效了,哪些没生效
//日志文件中Negative是不生效的。Positive是生效的
debug=true
添加@Data注解,就可以自动为已有属性生成getset方法。
添加@ToString注解,可以自动生成toString方法,代码不会显示,但是编译的时候会自动编译方法。
@NoArgsConstructor//无参构造器
@AllArgsConstructor//有参构造器
@EqualsAndHashCode//重新Equals和HashCode方法  
@Log4j//自动给类中注入日志类,日志记录器
/*
* 使用log.info(“”)会自动向log4j中
* */


开发技巧、Lombok

1. lombok

作用简化javabean开发,有无参构造器,toString、getset方法等简化
1.项目依赖中引入lombok

  <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

2.安装插件
在这里插入图片描述
3.程序中使用即可
添加@Data注解,就可以自动为已有属性生成getset方法。@Data中已包含@ToString
添加@ToString注解,可以自动生成toString方法,代码不会显示,但是编译的时候会自动编译方法。
@NoArgsConstructor//无参构造器
@AllArgsConstructor//有参构造器
@EqualsAndHashCode//重新Equals和HashCode方法
@Log4j//自动给类中注入日志类,日志记录器
/*

  • 使用log.info(“”)会自动向log4j中
  • */
    可以使界面看着整洁。

2.dev-tools

热部署,热更新(本质是重启项目)
功能热更新,每次修改代码完,不用重新启动,
按住Ctrl+F9(重新编译加载)就能实时生效
1.pom中引入依赖

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

Spring Initailizr

自动引入了对应依赖,自动创建好了项目结构,自动创建好了主程序类。自动搭建了架构

  • 可以快速创建Springboot应用,在创建的时候界面上使用。
  • 勾选之后,会自动导入对应的依赖

配置文件

使用yaml和yml都一样,不过最好用yaml
除了支持applecation.properties配置文件
还支持yaml,yaml是一种标记语言
适合做以数据为中心的配置文件

  • 基本语法
    key: value;kv之间有空格
    大小写敏感
    使用缩进表示层级关系
    缩进不允许使用tab,只允许空格
    缩进的空格数不重要,只要相同层级的元素左对齐即可
    '#‘表示注释
    字符串无需加引号,如果要加,单引号’’、双引号""表示字符串内容会被 转义、不转义
    不写了,详见Spring笔记大全

yaml提示

默认无提示,很不方便,需要添加注释处理器,设置提示:

配置处理器的依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

<!-- 下面插件作用是工程打包时,不将spring-boot-configuration-processor配置处理器打进包内,让其只在编码的时候有用 -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-configuration-processor</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

WEB

  • 静态资源访问

  • 只要资源放在这些里面,访问时根路径+静态资源名就能访问到
    在资源路径下的静态资源能直接被访问到
    在这里插入图片描述
    能直接localhost8080:bug.jpg访问到

  • 静态资源访问前缀
    默认无前缀的
    /**代表默认
    res为添加的前缀
    当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找

spring:
  mvc:
    static-path-pattern: /res/**

  • 改变静态资源路径
    改变默认的静态资源路径,/static,/public,/resources, /META-INF/resources失效
resources:
  static-locations: [classpath:/haha/]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼雨羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值