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

news/2024/11/19 5:27:06/

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方法。
添加@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应用,在创建的时候界面上使用。
  • 勾选之后,会自动导入对应的依赖

http://www.ppmy.cn/news/5604.html

相关文章

如何把图片转化为excel?其实很简单的

在我们办公中&#xff0c;如果是手动整理一个简单的图片表格&#xff0c;这可能要花小半天。更不用说大量的图片&#xff0c;想要整理出来&#xff0c;还不把自己累死了。如果小伙伴遇到请先结束这种没有意义的整理&#xff0c;只要你用对了方法&#xff0c;转化起来也就几分钟…

密码改造技术路径大比拼--“免”改造太理想,“重”改造太复杂,“易”改造是王道

随着《密码法》的颁布施行&#xff0c;密码产业进入爆发式增长期。市场用户侧、供给侧、监管侧对于“密评密改”的标准路径和部署方式共识度低&#xff0c;有唱专业的&#xff0c;有唱商业的&#xff0c;有唱便捷的&#xff0c;有唱可持续发展的&#xff0c;有唱单品的&#xf…

2023跨年代码(烟花+背景音乐)

文章目录前言效果展示使用方法源码学习HTML代码CSS代码前言 时光荏苒&#xff0c;白驹过隙。2022这一年又在忙碌中度过了&#xff0c;过去的一年&#xff0c;我们同努力&#xff0c;我们共欢笑&#xff0c;每一次成功都蕴藏着我们辛勤的劳动。 新的一年即将来到&#xff0c;我…

图片颜色处理

目录背景任务需求思考过程背景 背景叙述的是我为什么要做颜色处理以及整个思考过程&#xff0c;有些流水账&#xff0c;可不看。 任务需求 拍照&#xff0c;获取图片中固定一块区域的颜色&#xff0c;判断是不是红色。 思考过程 知道这个任务的时候&#xff0c;首先对图像…

2023,AIGC能赚到钱吗?

2022年&#xff0c;AIGC&#xff08;生成式AI&#xff09;是当之无愧的网红。AI作画在各大社交平台刷屏&#xff0c;ChatGPT火爆国内外出尽了风头&#xff0c;依靠AI生成语音和表情、动作的数字人也频频露脸。2022年12月&#xff0c;Science杂志发布了2022年度科学十大突破&…

记录Android Studio连接华为(nova)手机鸿蒙系统踩过的坑

目录 安装Android studio 安装Google USE Driver 查看华为手机的安卓版本 设置开发者模式 安装华为手机助手 重启Android studio 总结 安装Android studio 我主要参考的是这篇文章&#xff1a;Android基础&#xff08;android studio最详细基础使用功略&#xff09;_手下…

华为云桌面,一站式云上数字化创作深度解读

随着数字化技术的持续发展&#xff0c;无论是设计领域&#xff0c;如工业、建筑设计等&#xff0c;还是内容制作领域&#xff0c;如影视、动漫、综艺等&#xff0c;数字内容的数量呈现爆发式的增长。与此同时&#xff0c;随着3D、特效、实时渲染、4K/8K等技术手段的广泛应用&am…

【JavaScript】13_函数的返回值 + 箭头函数的返回值 + 作用域 +作用域链

7、函数的返回值 在函数中&#xff0c;可以通过return关键字来指定函数的返回值 返回值就是函数的执行结果&#xff0c;函数调用完毕返回值便会作为结果返回 任何值都可以作为返回值使用&#xff08;包括对象和函数之类&#xff09; 如果return后不跟任何值&#xff0c;则相…