springboot1

news2024/11/18 17:47:32

让我们快速构建项目并且运行,他就是搭建程序的脚手架

尽可能减少一切xml的相关配置

快速创建一个spring boot的启动项目

 在pom.xml中导入父类的启动器

 引入父类的依赖

下面我们写一个web的启动器

 

这个启动器导入了之后

整个web项目需要的依赖也就导入了

 

 并且把版本也是已经控制好了

下面去做一个配置类来配置一下这个Springboot

写一个controller类来测试一下

 

 

 java配置

之前我们就用过xml配置类干掉过Spring的xml文件

有些对象可以在直接通过注解注入到spring容器里面,但是有些配置注解就不方便使用了

比如说下面这个配置

 上面就是之前在spring里面提供了一个数据查询的对象,同时提供了一个数据库连接池的数据源

我们还是去吧xml干掉,通过java类来进行配置

我们在前在做spring整合mybatis的时候,做了这样一件事

 

 

 

 我们现在的目的是把数据库连接池的部分弄到java类里面,这里面数据连接池就先选择durid数据库连接池作为数据源

先在resources下面弄一个数据库连接池的的属性配置文件

因为我们要配置是这个DataSource的这个数据源,所以弄一个配置文件叫JdbcConfig

忘了有一个Druid的依赖还没有导入

 

 下面继续去处理这个config的配置文件

package com.pxx.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

/**
 * Created by Administrator on 2023/1/28.
 */
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {

    //把这些值从配置文件当中引入过来
    @Value("${jdbc.driver}")
    String driverClassName;
    @Value("${jdbc.url}")
    String url;
    @Value("${jdbc.username}")
    String username;
    @Value("${jdbc.password}")
    String password;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

然后去到Controller里面配置一下

项目如果变量不出现看一下是不是没有运行这个程序到这个位置

SpringBoot属性注入方式1

在说第一种方式属性注入之前,讲一个依赖包

 这个依赖包是在父类项目中存在的

这个包的作用是

 再来说spring注入属性的方式

第一:默认配置文件名字必须是:application.properties或者application.yml这个名字

 

先来修改之前的jdbc.properties的配置文件

 

 还是要在pom.xml中把相关依赖导入一下

 

 这个注解会自动给我们生成相关的set与get等各种方法

然后我们再去JdbcConfig的配置文件处理一下

上面这部分先直接注释起来

之前用了lombok的Data注解发现属性还是没有生成Get与Set方法,才发现是在IDEA里面没有引入lombok插件

可以从如下位置下载并安装

Releases · mplushnikov/lombok-intellij-plugin · GitHub

 打断点,运行一下项目,看一下内存的实际情况

上面就是一种方式

 spring boot属性注入2另外一种更优雅的方式

 还是做好一个属性类,但是没有在这加@ConfigurationProperties(prefix="jdbc")这个注解 

然后到我们的JdbcConfig里面 

 这个引入属性类的注解都可以不要了

同时这个属性类其实已经被干掉了

因为我们没有去添加ConfigurationProperties这个注解,就不会从配置文件中去找值,也不会产生一个对象在spring里面

我们变到了另外一个位置去引入值

 

也就是利用DataSource里面的set方法给属性赋值,前提是DataSource类里面的属性名与配置文件的属性名字保持一致

但是这里我报了一个错

这个问题就是说,DataSource里面的属性与jdbc配置文件的属性名字不一致造成的

把配置文件名改一下,因为DataSource已经封装好了,动不了

 

 

SpringBoot的注入原理 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MIUI刷机】旧机降级记录

欢迎来到 Claffic 的博客 💞💞💞 前言: 小米MAX2是我的第一部小米手机,这款发布于2017年5月25日的小米手机已伴随我5年了,现在再次拿起这部手机,依然能勾起我对当时手机圈的记忆。 当时的我对手…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-群集方案

群集方案 群集介绍 在大规模的外呼或者呼入系统,比如整个系统需要1万并发,单机最高也就3000-5000并发,这时候就需要多机群集了。顶顶通呼叫中心中间件使用redis数据库,多个FreeSWITCH(mod_cti)连接同一个redis就可以很容易的配置…

基于乾元通多卡聚合智能通信系统的典型应用场景分析

紧急事态处置 城市公共安全包含自然灾害事故灾难、公共卫生事件、社会安全事件、事故灾难,在城镇化快速发展的今天,作为维护公共安全的职能部门,带来了新的挑战。 乾元通科技使用多径混传、多路聚合技术,开发出的智能融合通信设备…

五款非常轻便的实用小工具

大伙们,开工大吉! 1.系统清理——WiseCare365 WiseCare365是由WiseCleaner开发的一款用来管理,维护,配置以及解决电脑故障的适用于Windows操作系统的电脑的免费软件。其实Wise Care 365就是把这个公司之前推出的所有优化工具整合…

Redmi GPro游戏本升级系统失败无法启动怎么办?

Redmi GPro游戏本升级系统失败无法启动怎么办?有用户使用Redmi GPro电脑去进行电脑系统的升级时,出现了系统升级错误。在电脑关机重新启动之后,电脑出现了蓝屏的情况。那么遇到这个问题要怎么去进行解决呢?来看看具体的解决方法吧…

美颜滤镜sdk常用的图形处理算法、代码分析

美颜滤镜sdk目前在视频、图文社交平台中的使用率是非常高的,特别是短视频平台和直播平台。今天小编就为大家讲解一下美颜滤镜sdk经常用到的算法和代码。 一、预处理算法、检测算法 在采集完图像后,首先会对图像进行预处理操作。保证图像的对比度清晰&…

c:out标签怎么是使用?

在JSP页面中&#xff0c;最常见的操作就是向页面输出一段文本信息&#xff0c;为此&#xff0c;Core标签库提供了一个<c:out>标签&#xff0c;该标签可以将一段文本内容或表达式的结果输出到客户端。如果<c:out>标签输出的文本内容中包含了需要进行转义的特殊字符&…

css字体、文本

无衬线字体(sans-serif) 特点: 1.文字笔画粗细均匀&#xff0c;并且首尾无装饰 2.场景:网页中大多采用无衬线字体 3.常见该系列字体:黑体、Arial3 衬线字体(serif) 特点: 1.文字笔画粗细不均&#xff0c;并且首尾有笔锋装饰 2.场景:报刊书籍中应用广泛 3.常见该系列字体:宋体、…

音视频处理

问题背景&#xff1a;h265格式的视频转码之后ios存在兼容问题 原转码命令&#xff1a; /usr/local/bin/ffmpeg -y -i /data/tmp/1672385812000-tks3wa.mp4 -vf scale720:1281 -r 30 /data/tmp/1672385812000-tks3wa_720.mp4 -hide_banner解决办法&#xff1a; // 原视频格式为…

可持久化线段树(主席树)详解(c++ 图片演示+ 代码)

文章目录可持久化线段树&#xff08;主席树&#xff09;建树前准备!初始化建树&#xff01;更新操作!区间查询!AC code可持久化线段树&#xff08;主席树&#xff09; 可持久化线段树指的是可持久化权值线段树&#xff0c;关于权值线段树可以看我这篇博客&#xff1a; 权值线…

Mininal BASH-like line editing is supported.

翻译&#xff1a;支持类似Mininal bash的行编辑。对于第一个单词&#xff0c;TAB列出了可能的命令补全。“其他任何地方”标签列出可能的设备或文件补全。原因分析&#xff1a;出现这个问题的原因是windows启动的时候&#xff0c;没有找到启动文件。&#xff08;我的电脑之所以…

每天一道大厂SQL题【Day01】

每天一道大厂SQL题【Day01】 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典题&#xff0c;以每日1题的形…

5.6 奇异值

对单位圆的乘法 首先我们在单位圆上遍历所有的点&#xff0c;作为二维向量&#xff0c;来研究某个矩阵乘以这些向量得到的结果&#xff0c;我们选三种矩阵&#xff0c;秩为0的矩阵&#xff0c;秩为1的矩阵和秩为2的矩阵。   秩为0的矩阵就一个&#xff0c;也就是0矩阵&#x…

【页面设计】02.CSS

CSS&#xff1a;Cascading Style Sheets 层叠样式表1.不是编程语言。2.告诉浏览器如何指定样式、布局等一、基本格式效果&#xff1a;二、三种方式添加CSS1.外部样式表&#xff08;1&#xff09;CSS保存在.css文件中&#xff08;2&#xff09;在HTML的<head>中使用<li…

棕黑色L-CQDs/TiO2 离子液体修饰/500nm粒径氮硫掺杂碳量子点N,S-CQDs/ZnO的制备过程

棕黑色L-CQDs/TiO2 离子液体修饰/500nm粒径氮硫掺杂碳量子点N,S-CQDs/ZnO的制备过程 今天小编分享L-CQDs/TiO2 离子液体修饰碳量子点的制备过程&#xff0c;一起看看吧: L-CQDs/TiO2 离子液体修饰碳量子点的制备过程&#xff1a; 通过水热法制备L-CQDs/TiO2复合催化剂。将50 …

Harbor安装对接Containerd

使用docker-compose安装harbor 先决条件&#xff1a; 安装docker安装docker-compose 安装参考 下载并解压 wget -c https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-offline-installer-v2.3.5.tgztar -zxvf harbor-offline-installer-v2.3.5.tgz cd harbo…

Aurora、Chip2chip、Ethernet(一)

摘要&#xff1a;之前的文章对aurora、chip2chip以及Ethernet这三个IP都进行介绍、仿真和使用说明。但是在实际使用中一定没有那么简单&#xff0c;在复杂联合使用的情况下&#xff0c;肯定会碰到各种各样的问题。此系列文章主要说明如何解决联合使用情况下碰到的一系列问题。 …

操作系统(day02)

“指令”就是处理器&#xff08;CPU&#xff09;能识别、执行的最基本的命令也可以叫做机器指令 两种指令、两种处理器状态、两种程序 两种指令 特权指令 如内存清零指令&#xff0c;不允许用户程序使用非特权指令 如普通的运算指令 既然有两种指令&#xff0c;且特权指令不…

IB学习者培养目标-知识渊博

“We explore concepts, ideas and issues that have local and global significance. In so doing, we acquire in-depth knowledge and develop understanding across a broad and balanced range of disciplines.” -IB definition of the attribute Knowledgeable“Being …

C++ —— 容器适配器和仿函数

目录 1.什么是容器适配器 2.stack的模拟实现 3.queue的模拟实现 4.deque概述 5.priority_queue的模拟实现 5.1仿函数 5.2模拟实现 6.反向迭代器 1.什么是容器适配器 在已有的容器(vector、list)的基础上适配出其他的容器。就类似于手机、笔记本电脑的电源适配器&…