Java企业级信息系统开发学习笔记(4.3) Spring Boot两种全局配置和两种注解

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/Z2viP】

文章目录

  • 一、Application.properites配置文件
    • 1.1 创建Spring Boot的Web项目ProperitesDemo
    • 1.2 在应用属性文件里添加相关配置
      • 1. 配置服务器端口号和web虚拟路径
      • 2. 对象类型的配置与使用
        • (1)创建Pet类
        • (2)创建Person类
        • (3)在应用属性文件里配置对象
        • (4)给Person类添加注解
        • (5)给Pet类添加注解
        • (6)从Spring容器里获取Person类的实例并输出
        • (7)从Spring容器里获取Pet类的实例并输出
  • 二、Application.yaml配置文件
    • 2.1 备份application.properties文件
    • 2.2 创建application.yaml文件
    • 2.3 运行测试方法,查看结果


一、Application.properites配置文件

1.1 创建Spring Boot的Web项目ProperitesDemo

  • 利用Spring Initializr方式创建项目
    在这里插入图片描述
  • 设置项目编码为utf8(尤其注意复选框)
    在这里插入图片描述

1.2 在应用属性文件里添加相关配置

1. 配置服务器端口号和web虚拟路径

  • application.properties文件里配置
    在这里插入图片描述
# 设置服务端口号
server.port=8888
# 设置web虚拟路径
server.servlet.context-path=/lzy

2. 对象类型的配置与使用

(1)创建Pet类

  • cn.kox.boot里创建bean子包,在子包里创建Pet
    在这里插入图片描述
package cn.kox.boot.bean;

/**
 * @ClassName: Pet
 * @Author: Kox
 * @Data: 2023/6/13
 * @Sketch:
 */
public class Pet {
    private String type; // 类型
    private String name; // 名字

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Pet{" +
                "type='" + type + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
}

(2)创建Person类

  • cn.kox.boot.bean包里创建Person
    在这里插入图片描述
package cn.kox.boot.bean;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: Person
 * @Author: Kox
 * @Data: 2023/6/13
 * @Sketch:
 */
public class Person {
    private int id; // 编号
    private String name; // 姓名
    private List<String> hobby; // 爱好;
    private Map<String, String> family; // 家庭成员
    private Pet pet; // 宠物

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<String> getHobby() {
        return hobby;
    }

    public void setHobby(List<String> hobby) {
        this.hobby = hobby;
    }

    public Map<String, String> getFamily() {
        return family;
    }

    public void setFamily(Map<String, String> family) {
        this.family = family;
    }

    public Pet getPet() {
        return pet;
    }

    public void setPet(Pet pet) {
        this.pet = pet;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", hobby=" + hobby +
                ", family=" + family +
                ", pet=" + pet +
                '}';
    }
}

(3)在应用属性文件里配置对象

# 配置对象
person.id=1
person.name=张三丰
person.hobby=旅游,美食,音乐
person.family.father=张云光
person.family.mother=吴文燕
person.family.grandpa=张宏宇
person.famliy.grandma=唐雨欣
person.family.son=张君宝
person.family.daughter=张晓敏
person.pet.type=泰迪犬
person.pet.name=瑞瑞

  • 配置Person对象属性
    在这里插入图片描述

(4)给Person类添加注解

  • 添加注解@Component,交给Spring去管理
    在这里插入图片描述
  • 添加注解@ConfigurationProperties(prefix = "person")
    在这里插入图片描述
  • 配置Spring Boot注解处理器,去掉红色光条里的提示信息
    在这里插入图片描述
<dependency>                                                          
    <groupId>org.springframework.boot</groupId>                       
    <artifactId>spring-boot-configuration-processor</artifactId>      
    <optional>true</optional>                                         
</dependency>                                                         

(5)给Pet类添加注解

  • 添加注解@Component,交给Spring去管理
  • 添加注解@ConfigurationProperties(prefix = "person.pet") - 可以不用添加
    在这里插入图片描述

(6)从Spring容器里获取Person类的实例并输出

package cn.kox.boot;

import cn.kox.boot.bean.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.BeansException;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

@SpringBootTest
class PropertiesDemoApplicationTests implements ApplicationContextAware {

    private ApplicationContext context; // 应用容器

    @Test
    void contextLoads() {
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        context = applicationContext;
    }

    @Test
    public void testPerson() {
        // 按名称从应用容器里获取Person对象
        Person person = (Person) context.getBean("person");
        // 输出Person对象
        System.out.println(person);
    }
}

在这里插入图片描述

(7)从Spring容器里获取Pet类的实例并输出

  • 在测试类里添加测试方法testPet()
    在这里插入图片描述
  • 运行测试方法testPet(),查看结果
    在这里插入图片描述

二、Application.yaml配置文件

2.1 备份application.properties文件

  • 文件更名为application.back,即让此文件不起作用
    在这里插入图片描述

2.2 创建application.yaml文件

  • resoures目录里创建application.yaml文件
    在这里插入图片描述
# 配置服务器
server:
  port: 8888 # 配置端口号
  servlet:
    context-path: /lzy # 配置虚拟路径

# 配置person对象
person:
  id: 1
  name: 张三丰
  hobby:
    旅游,
    美食,
    音乐
  family: {
    father: 张云光,
    mother: 吴文燕,
    grandpa: 张宏宇,
    grandma: 唐雨欣,
    son: 张君宝,
    daughter: 张晓敏
  }
  pet:
    type: 泰迪犬
    name: 瑞瑞

# 配置pet对象
pet:
  type: 泰迪犬
  name: 瑞瑞
logging:
  level:
    root: OFF

2.3 运行测试方法,查看结果

  • 运行testPerson()方法
    在这里插入图片描述
  • 运行测试方法testPet()
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/29251.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【6.09 代随_52day】 最长递增子序列、最长连续递增序列、最长重复子数组

最长递增子序列、最长连续递增序列、最长重复子数组 最长递增子序列1.方法图解步骤递归代码 最长连续递增序列1.动态规划的方法图解步骤代码 最长重复子数组图解步骤代码 最长递增子序列 力扣连接&#xff1a;300. 最长递增子序列&#xff08;中等&#xff09; 1.方法 dp[i]…

【计算机网络自顶向下】如何学好计网-第二章应用层

第二章 应用层 应用层协议原理 网络应用程序体系结构 客户机/服务器体系结构&#xff1a;至少有一个服务器&#xff0c;一个客户机&#xff0c;其中服务器总是打开的&#xff0c;具有固定的众所周知的IP地址&#xff0c;主机群集常被用于创建强大的虚拟服务器&#xff0c;而客…

开发新项目看过来,这3款基于 Vue 的免费开源的 admin 管理后台框架非常好用

三款 admin 框架&#xff0c;分别基于热门的前端 UI 组件库 ElementPlus / Ant Design / Naive UI 打造&#xff0c;开箱即用。 新项目的开始&#xff0c;一般是搭建 admin 系统&#xff0c;今天盘点一下3个好的选择。 Vue vben admin 了解详细&#xff1a;https://www.thos…

数据建模学习2--作业-利用matlab解决实际问题

文章目录 Malthus模型问题用最小儿二乘法估计阻滞增长模型自来水运输问题利用 Dijkstra 算法计算下图中起点 D 至各顶点得最短距离&#xff0c;需要给出 仅供参考&#xff0c;代码注意修改 Malthus模型问题 1790-1980年间美国每隔10年的人口数量记录如下表所示。 表1 1790-1…

虚拟机(VMware )部署

一、VMware 概述&#xff1a; VMware是一家提供虚拟化解决方案的领先公司&#xff0c;其产品被广泛应用于企业和个人用户的计算环境中。VMware的虚拟化技术可以将物理计算资源&#xff08;如服务器、存储和网络&#xff09;抽象成虚拟化的资源&#xff0c;从而提供更高的灵活性…

kali学习笔记(二)

一、关闭自动锁屏 关闭自动锁屏对于测试人员来说&#xff0c;可以按照自己的习惯来设置&#xff0c;不然kali会过十分钟就锁屏&#xff0c;有的时候会比较不方便。 1、使用root账号登录&#xff0c;在display设置选项中做如下设置。 2、把休眠选项关掉。 二、创建快照 关机创…

算法刷题-数组-长度最小的子数组

209.长度最小的子数组 力扣题目链接 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, …

React-Redux 对Todolist修改

在单独使用redux的时候 需要手动订阅store里面 感觉特别麻烦 不错的是react有一个组件可以帮我们解决这个问题, 那就是react-redux。 react-redux提供了Provider 和 connent给我们使用。 先说一下几个重点知道的知识 Provider 就是用来提供store里面的状态 自动getState()co…

MySQL——视图(VIEW)详解

今天我们一起来学起视图(VIEW)&#xff0c;那么视图是什么呢&#xff1f;视图有什么作用呢&#xff1f;视图一方面可以帮我们使用表的一部分而不是所有的表&#xff0c;另一方面也可以针对不同的用户制定不同的查询视图&#xff01;带着问题一起来寻找答案吧~~~ 1. 常见的数据库…

Zookeeper概述

​ ZooKeeper概述 ZooKeeper是什么 zookeeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chubby的一个开源实现&#xff0c;是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。提供了基于类似Unix系统的目录节点树方式的数…

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

目录 1 BeautifulSoup 官方文档 2 用bs 和 requests 打开 本地html的区别&#xff1a;代码里的一段html内容 2.1 代码和运行结果 2.2 用beautiful 打开 本地 html 文件 2.2.1 本地html文件 2.2.2 soup1BeautifulSoup(html1,"lxml") 2.3 用requests打开 本地 h…

【默认端口】市面上各种中间件、软件、服务的默认端口汇总

常用软件&#xff0c;中间件&#xff0c;服务的默认端口汇总 常用软件默认端口汇总 市面上各种中间件、软件和服务的默认端口众多&#xff0c;下面列举一些常见的默认端口&#xff1a; SSH&#xff08;Secure Shell&#xff09;&#xff1a;22 Telnet&#xff1a;23 FTP…

赛宁网安助力智能网联汽车发展 | “饶派杯”XCTF车联网安全挑战赛圆满收官

​​ 2023年5月31日&#xff0c;“饶派杯”XCTF车联网安全挑战赛在江西省上饶市圆满落幕。本次大赛特邀国内21支精英战队参与比拼&#xff0c;参赛选手覆盖全国知名高校、自动驾驶汽车和科研院所等车联网安全人才。最终&#xff0c;经过9个小时激烈角逐&#xff0c;来自南京邮电…

后端(二):Servlet

我们上一张聊的是Tomcat&#xff0c;它其实就是一个 HTTP 服务器&#xff0c;而Servlet 是基于 Tomcat 的 原生api &#xff0c;除了 Servlet&#xff0c;后面还有聊到很多 api 。 Servlet 是什么 Servlet&#xff08;Server Applet&#xff09;是Java Servlet的简称&#xf…

动态规划算法(多状态dp1)

动态规划算法专辑之多状态dp问题&#xff08;1&#xff09; 一、什么是多状态 多状态dp问题&#xff0c;指一个规模问题下存在多种状态&#xff0c;我们需要联合关注多种状态间的相互转移&#xff0c;才可以求解目的问题。 多状态问题可以理解为有限状态机&#xff0c;在有限…

centos 7 安装git并配置ssh

一、安装 1、查看是否安装git <span style"color:#333333"><span style"background-color:#ffffff"><code class"language-perl">rpm -qa|<span style"color:#0000ff">grep</span> git </code>…

边缘检测笔记

边缘是什么&#xff1f; 图像的边缘是指图像局部区域中亮度变化明显的部分&#xff0c;边缘位于像素的灰度值产生突变的地方。 边缘的正负之分&#xff1a;由暗到亮为正&#xff0c;由亮变暗为负。 图像的高频信号和低频信号 简单理解为&#xff0c;图像中高频分量&#xff08…

mcu:利用Cortex-M中的DWT实现高精度计时

1、Cortex-M中的DWT 在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace)&#xff0c;是用于系统调试及跟踪。 它有一个32位的寄存器叫CYCCNT&#xff0c;它是一个向上的计数器&#xff0c;记录的是内核时钟运行的个数&#xff0c;内核时钟跳动一次&#xff0c;该计数器…

YOLOV5 训练

YOLOV5训练过程 CUDA 和cuDnnan 安装教程 windows上安装可以参考这篇知乎文章 数据集准备 自己准备数据集 可以使用 labelImg 工具&#xff0c;直接 pip install labelimg 就可以安装了。 命令行中输入 labelImg 就可以运行 标注数据的输出结果有多种过格式&#xff0c;V…

前端什么最难学?

前言 个人认为是JS&#xff0c;无论是在平时的项目或者找工作时候JS都是大头&#xff0c;相比起其他的部分&#xff0c;它相对而言是难一点&#xff0c;同时也是十分重要的一部分&#xff0c;学好原生JS&#xff0c;后续的学习才能基于此循序渐进&#xff0c;下面是我总结的关…