Stringboot

一、概述

springboot是spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。在以往我们通过SpringMVC+Spring+Mybatis框架进行开发的时候,我们需要配置web.xml,spring配置,mybatis配置,然后整合在一起,而springboot抛弃了繁琐的xml配置过程,采用大量默认的配置来简化我们的spring开发过程。

SpringBoot化繁为简,使开发变得更加的简单迅速。

四大核心

  自动配置、起步依赖、Actuator、命令行界面。

二、入门程序

 static:存放静态资源。如图片、CSS、JavaScript 等 
 templates:存放 Web 页面的模板文件 
 application.properties/application.yml 用于存放程序的各种依赖模块的配置信息,比如 服务端口,数据库连接配置等
.gitignore:使用版本控制工具 git 的时候,设置一些忽略提交的内容 
 StringbootApplication:SpringBoot 程序执行的入口,执行该程序中的 main 方法,启动当前SpringBoot项目。

1.创建一个 Spring MVC的Spring BootController 

(1)创建Springboot类

package com.pon.springboot001.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloContro {@RequestMapping("/hello")public String hello(){return "hello ljx";}
}

(2)启动SpringbootApplication

package com.pon.springboot001;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Springboot001Application {public static void main(String[] args) {SpringApplication.run(Springboot001Application.class, args);}}

可以在控制台上看见tomcat的端口号,可以在浏览器输入地址,访问到你所写的内容。

2.Springboot的配置文件

自动配置:

 属性绑定

properties

一个Pig类(实现类): 

package com.pon.springboot001.bean;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "pig")
@Component
public class Pig {private Long id;private String name;private Integer age;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Pig{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}
}

在application.properties进行赋值:

pig.id=1
pig.name=小猪
pig.age=3

 在main函数进行测试:

package com.pon.springboot001;
import com.pon.springboot001.bean.Pig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
public class Springboot001Application {public static void main(String[] args) {ConfigurableApplicationContext C = SpringApplication.run(Springboot001Application.class, args);Pig p= C.getBean(Pig.class);System.out.println(p);}}

 

在实际开发中,多采用yml文件。

yml中如果要对数组进行赋值:(如下)

person:

     arr:

        -张三

        -李四

yml文件的书写和获取:

 

书写:要注意空格 

获取:@Value(“${键名}”)或者@ConfigurationPropertise(prefix=“前缀”)

3.SpringBoot整合Mybatis

1)在数据库中先创建mybatis数据库,表信息

2)在springboot中的pom.xml引入mybatis依赖和mysql驱动。

 <!-- mysql驱动依赖--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

3)在application.yml中配置数据源信息

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisusername: rootpassword: 123456

这就将mybatis整合上了,下面创建一个方法对其实现,如何获取数据库中的信息。

4)创建pojo(指简单java对象)包,包下创建一个完整javabean类实现数据库的属性

package com.pon.springboot003.pojo;
public class User {private Integer id;private String name;private Short age;private Short gender;private String phone;public User(){}public User(Integer id, String name, Short age, Short gender, String phone) {this.id = id;this.name = name;this.age = age;this.gender = gender;this.phone = phone;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}public Short getGender() {return gender;}public void setGender(Short gender) {this.gender = gender;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", gender=" + gender +", phone='" + phone + '\'' +'}';}
}

5)创建一个mapper包,包下创建一个接口,定义查找用户的id,从而获取用户的信息(使用sql语句)

Mapper:Mapper是MyBatis中的概念,用于执行SQL语句并映射结果。在MyBatis中,Mapper通常是一个Java接口,其中定义了与数据库交互的SQL映射语句。

package com.pon.springboot003.mapper;
import com.pon.springboot003.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface UserMapper {@Select("select * from user where id=#{id}")public User findId(Integer id);
}

6)创建service包,包下创建一个接口,方法与上述方法一致。

service:Service 层通常用于实现应用程序的业务逻辑

package com.pon.springboot003.service;
import com.pon.springboot003.pojo.User;
public interface UserService {public User findId(Integer id);
}

7)创建一个实现类

package com.pon.springboot003.service.Lmp;
import com.pon.springboot003.mapper.UserMapper;
import com.pon.springboot003.pojo.User;
import com.pon.springboot003.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImp implements UserService {@Autowiredprivate UserMapper um;@Overridepublic User findId(Integer id) {return um.findId(id);}
}

8)创建一个controller包,包下创建一个类

package com.pon.springboot003.controller;
import com.pon.springboot003.pojo.User;
import com.pon.springboot003.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@Autowiredprivate UserService us;@RequestMapping("/find")public User findById(Integer id){return us.findId(id);}
}

9)启动application主函数

package com.pon.springboot003;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Springboot003Application {public static void main(String[] args) {SpringApplication.run(Springboot003Application.class, args);}}

三、Bean

1.Bean扫描

SpringBoot默认扫描启动类所在的包及其自包。

2.Bean注册

在Spring中一般使用那四大注解(Component、Service...)完成bean注册,

先引入第三方jar包在仓库下,再在pom.xml中引入依赖。

 @Bean依赖 

@Configuration是一个配置类

 

@Import

3.注册条件

在一个类中要对属性赋值,但值不能之间写在程序中。需要写在配置文件(application.yml)再用配置文件,对属性进行赋值。

 

 

四、自动配置

 

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

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

相关文章

django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.33).

django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.33). 一、原因分析 在新版的Django默认需要MySQL 8或更高版本&#xff0c;才能运行。 二、解决办法 1、升级mysql数据库版本 只需要将mysql版本升级到8.0&#xff0c;即可解决&#xff0c;当然这…

基于esp8266_点灯blinker_智能家居

文章目录 一 实现思路1 项目简介2 项目构成3 代码实现4 外壳部分 二 效果展示UI图片 一 实现思路 摘要&#xff1a;esp8266&#xff0c;mixly&#xff0c;点灯blinker&#xff0c;物联网&#xff0c;智能家居&#xff0c;3donecut 1 项目简介 1 项目效果 通过手机blinker app…

宝藏速成秘籍(3)选择排序法

一、前言 1.1、概念 选择排序法&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法。它的基本思想是&#xff1a;每次从待排序的数组中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放在已排序部分的末尾&#xff0c;直到所有元素都排序完毕。…

Unet心电信号分割方法(Pytorch)

心血管疾病是一种常见病&#xff0c;严重影响人们的健康及日常生活。 近年来随着人们生活习惯的不断变化&#xff0c;心血管疾病对人们影响愈加明显&#xff0c;发病率呈现出逐年攀升的趋势&#xff0c;心血管疾病是中国城乡居民死亡的首要原因。心电图ECG已被广泛用于研究心跳…

光学雨量监测站:科技赋能,精准监测降水过程

TH-YJ3随着科技的不断进步&#xff0c;光学雨量监测站作为一种先进的降水监测设备&#xff0c;正逐渐在气象、水文、农业等领域发挥重要作用。光学雨量监测站以其高精度、高可靠性、实时性强的特点&#xff0c;为降水数据的收集和分析提供了强有力的支持&#xff0c;为相关领域…

Nginx负载均衡之长连接负载均衡

当客户端通过浏览器访问 HTTP 服务器时&#xff0c;HTTP 请求会通过 TCP 协议与 HTTP 服务器建立一条访问通道&#xff0c;当本次访问数据传输完毕后&#xff0c;该 TCP 连接会立即被断开&#xff0c;由于这个连接存在的时间很短&#xff0c;所以 HTTP 连接也被称为短连接。 …

Lua实现自定义函数面向对象编程

本文目录 1、引言2、原理3、实例4、层析验证 文章对应视频教程&#xff1a; 暂无&#xff0c;可以关注我的B站账号等待更新。 点击图片或链接访问我的B站主页~~~ 1、引言 在现代软件开发中&#xff0c;面向对象编程&#xff08;OOP&#xff09;已经成为一种广泛使用的编程范式…

俄罗斯Yandex推广投放如何开户?Yandex广告开户和代运营推广流程详解_俄罗斯_受众_搜索引擎

在俄罗斯进行Yandex广告推广是一种有效的在线营销方式&#xff0c;特别是针对俄罗斯市场。Yandex是俄罗斯最受欢迎的搜索引擎&#xff0c;类似于Google在全球范围内的地位。以下是通过Yandex广告推广的一般步骤&#xff0c;以及如何通过上海上弦进行广告开户和代运营。 1. Yan…

怎么图片转excel表格?推荐三个方法

怎么图片转excel表格&#xff1f;在信息化高速发展的今天&#xff0c;图片转Excel表格的需求日益凸显&#xff0c;尤其是在职场办公中&#xff0c;这一需求更是显得尤为迫切。为了满足广大用户的需求&#xff0c;市面上涌现出了众多图片转Excel的软件。今天&#xff0c;就为大家…

Git 基础操作(一)

Git 基础操作 配置Git 安装完Git后&#xff0c;首先要做的事情是设置你的 用户名 和 e-mail 地址。这样在你向仓库提交代码的时候&#xff0c;就知道是谁提交的&#xff0c;以及提交人的联系方式。 配置用户名和邮箱 使用git config [--global] user.name "你的名字&qu…

Windows如何找回永久删除的文件?完整教程看完即会!

可以找回永久删除的文件&#xff1f; 你是否也在Windows 10中永久删除过文件&#xff1f;什么是永久删除&#xff1f;通常有5种方法可以永久删除文件&#xff1a; 正常删除文件&#xff0c;然后在回收站中再次删除。使用命令提示符&#xff1a;“del”删除文件。使用“ShiftD…

RS485和CAN电路中的TVS管选择

在RS485和CAN电路设计中&#xff0c;经常要考虑“静电和浪涌保护”&#xff0c;怎么选择TVS管&#xff0c;很少有人讲解。 1、先了解TVS管 TVS管有单向管和双向管&#xff0c;通常后缀为CA的是双向TVS管&#xff0c;只有字母A的是单向TVS管。见下图&#xff1a; 2、TVS选择依…

【LLM之RAG】Adaptive-RAG论文阅读笔记

研究背景 文章介绍了大型语言模型&#xff08;LLMs&#xff09;在处理各种复杂查询时的挑战&#xff0c;特别是在不同复杂性的查询处理上可能导致不必要的计算开销或处理不足的问题。为了解决这一问题&#xff0c;文章提出了一种自适应的查询处理框架&#xff0c;动态选择最合…

4天掌握一门新技能是一种什么样的体验?

你能想象这门技术覆盖面有多广吗&#xff1f; 从地产中介到教育培训&#xff0c;从生产制造业到政府企事业、从消费生活到智慧文旅....这门技术都可以为这些行业提供服务。这就是今天要介绍的——VR全景 投入成本有多高&#xff1f; 放在以前&#xff0c;可能还不会推荐&#x…

大规模装箱问题:蜣螂优化算法DBO求解二维装箱问题(MATLAB代码)

一、问题描述 装载率:所有选择的箱子的总面积与夹板面积之比 假设一共有300个箱子&#xff0c;如何设计算法&#xff0c;使得选择部分箱子放入80*80的甲板上&#xff0c;让甲板的装载率越大&#xff0c;要求箱子间不得重叠。 二、蜣螂优化算法求解二维装箱问题 蜣螂优化算法…

Docker中部署Jenkins+Pipline流水线基础语法入门

场景 DockerCompose中部署Jenkins&#xff08;Docker Desktop在windows上数据卷映射&#xff09;&#xff1a; DockerCompose中部署Jenkins&#xff08;Docker Desktop在windows上数据卷映射&#xff09;-CSDN博客 DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解…

next.js v14 升级全步骤|迁移 pages Router 到 App Router

【概括】本文升级整体按照官网文档指引进行&#xff0c;在迁移 pages Router 前先看了官网的实操视频。 【注意】文章内对 .babel.ts、next.config.js 进行了多次更改&#xff0c;最终配置可见 报错3: Server Error ReferenceError: React is not defined 一、升级 Next.js 版…

Pytorch 卷积神经网络-手写数字识别

卷积神经网络是深度学习中的一个里程碑式的技术&#xff0c;有了这个技术&#xff0c;才会让计算机有能力理解图片和视频信息&#xff0c;才会有计算机视觉的众多应用。 本文讨论卷积神经网络模型&#xff08;CNN&#xff09;的Hello World。前面讨论的是一个二分类问题&#x…

网络安全 - DNS劫持原理 + 实验

DNS 劫持 什么是 DNS 为什么需要 DNS D N S \color{cyan}{DNS} DNS&#xff08;Domain Name System&#xff09;即域名系统。我们常说的 DNS 是域名解析协议。 DNS 协议提供域名到 IP 地址之间的解析服务。计算机既可以被赋予 IP 地址&#xff0c;也可以被赋予主机名和域名。用…

Hbase搭建教程

Hbase搭建教程 期待您的关注 ☀小白的Hbase学习笔记 目录 Hbase搭建教程 1.上传hbase的jar包并解压 2.重新登录 3.启动zookeeper 4.配置环境变量 5.关闭ZK的默认配置 6.修改hbase-site.xml文件 7.修改regionservers文件 8.将配置好的文件分发给其它节点 9.配置环境变量…