Stringboot

devtools/2024/11/15 0:23:30/

一、概述

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类

java">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

java">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类(实现类): 

java">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进行赋值:

java">pig.id=1
pig.name=小猪
pig.age=3

 在main函数进行测试:

java">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类实现数据库的属性

java">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映射语句。

java">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 层通常用于实现应用程序的业务逻辑

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

7)创建一个实现类

java">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包,包下创建一个类

java">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主函数

java">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.ppmy.cn/devtools/52203.html

相关文章

wordpress轻量免费主题

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 https://www.jianzhanpress.com/?p545 首屏大图红色简洁wordpress主题 首屏大图红色简洁wordpress主题&#xff0c;非常地高端大气上档次&#xff0c;可用于多个行…

第2章 Rust初体验5/8:match表达式和模式匹配:更富表达力:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.5 故事3: 比较答案与点数之和 贾克强:“同学们,我们开始用三种语言来实现故事3吧!” 2.5.1 Rust版故事3 这个故事实在是轻松容易地实现了。赵可菲照着书,一下子就写好了。 @@ -1,4 +1,5 @@use rand::Rng; +use std::cmp::Ordering;use std…

【深度学习】解析Vision Transformer (ViT): 从基础到实现与训练

之前介绍&#xff1a; https://qq742971636.blog.csdn.net/article/details/132061304 文章目录 背景实现代码示例解释 训练数据准备模型定义训练和评估总结 Vision Transformer&#xff08;ViT&#xff09;是一种基于transformer架构的视觉模型&#xff0c;它最初是由谷歌研究…

学本领、争奖金! 由和鲸支持的“数据蜂杯”全国大学生暑期面访调查大赛火热报名中

随着数字时代的到来&#xff0c;社会调查能力、数据分析能力成为当代大学生不可或缺的核心素养。为了进一步提升当代大学生深入田野、以团队的方式采集高质量数据的能力&#xff0c;中国人民大学中国调查与数据中心&#xff08;NSRC&#xff09;举办“数据蜂杯”全国大学生暑期…

数据治理:让数据提取更高效、更准确的关键

数据治理&#xff1a;让数据提取更高效、更准确的关键 在数字化浪潮的推动下&#xff0c;数据已成为企业运营和决策的重要基石。然而&#xff0c;单纯的数据堆积并不能带来实际的业务价值&#xff0c;关键在于如何高效、准确地提取并利用这些数据。而数据治理&#xff0c;作为…

.net core webapi跨域

var builder WebApplication.CreateBuilder(args);// Add services to the container. // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen();//此处1 …

怎样为Flask服务器配置跨域资源共享

为了在 Flask 服务器中配置跨域资源共享&#xff08;CORS&#xff09;&#xff0c;你可以使用 flask-cors 扩展。这个扩展可以帮助你轻松地设置 CORS 规则&#xff0c;从而允许你的 Flask 服务器处理来自不同源的请求。 以下是配置 CORS 的步骤&#xff1a; 安装 flask-cors …

从“数据孤岛”、Data Fabric(数据编织)谈逻辑数据平台

提到逻辑数据平台&#xff0c;其核心在于“逻辑”&#xff0c;与之相对的便是“物理”。在过去&#xff0c;为了更好地利用和管理数据&#xff0c;我们通常会选择搭建数据仓库和数据湖&#xff0c;将所有数据物理集中起来。但随着数据量、用数需求和用数人员的持续激增&#xf…