SpringBoot(一)创建一个简单的SpringBoot工程

Spring框架常用注解简单介绍
SpringMVC常用注解简单介绍
SpringBoot(一)创建一个简单的SpringBoot工程
SpringBoot(二)SpringBoot多环境配置
SpringBoot(三)SpringBoot整合MyBatis
SpringBoot(四)SpringBoot整合 Redis
在开始创建项目之前,我们先了解三个概念:

  • Spring
  • SpringMVC
  • SpringBoot
Spring

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。Spring的核心思想是IOC和AOP。

SpringMVC

SpringMVC是Spring框架的一个模块,提供了web mvc , webviews , jsp等解决功能。

SpringBoot

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

Spring Boot简化了基于Spring的应用开发。多数Spring Boot应用只需要很少的Spring配置。

我们可以使用Spring Boot创建java应用,并使用 java --jar启动它,或者采用传统的war包部署到Tomcat方式。

SpringBoot特性
  1. 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
  2. 内嵌Tomcat或Jetty等Servlet容器;能够直接使用java main方式启动内嵌的Tomcat服务器运行Spring boot程序,不需要部署war包文件;
  3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
  4. 尽可能自动配置Spring容器,简化了springmvc的配置;
  5. 提供准备好的特性,如指标、健康检查和外部化配置;
  6. 绝对没有代码生成,不需要XML配置。

使用IDEA通过Maven创建一个SpringBoot工程

  1. 创建工程


    1

    2
  2. 添加pom依赖
    <!-- 继承springboot的父级项目的依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><!-- 添加依赖 --><dependencies><!-- springboot开发web项目的起步依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>
  1. 创建SpringBoot启动类


    SpringBoot启动类
  2. 创建一个controller,在里面写一个简单的接口
/*** 商品模块* */
@RestController
@RequestMapping("/product")
public class ProductController {@AutowiredIProductService productService;@RequestMapping(value = "/{id}", method = RequestMethod.GET)public Product getProductById(@PathVariable String id) {
//        return "product_id is" + id;return productService.getProductById(id);}
}
  1. 打开浏览器输入:http://localhost:8080/product/12
完善工程架构

一般我们后台的架构是这样的:controller层 -> service层 -> dao层


工程目录结构
  1. 我们先创建一个Product实体
@Data
public class Product {private String id;private String name;private Double price;
}
  1. 创建service层,然后再controller中调用
public interface IProductService {Product getProductById(String id);
}
@Service("iProductService")
public class ProductServiceImpl implements IProductService {@AutowiredProductDao productDao;@Overridepublic Product getProductById(String id) {return productDao.getProductById(id);}
}
/*** 商品模块* */
@RestController
@RequestMapping("/product")
public class ProductController {@AutowiredIProductService productService;@RequestMapping(value = "/{id}", method = RequestMethod.GET)public Product getProductById(@PathVariable String id) {
//        return "product_id is" + id;return productService.getProductById(id);}}
  1. 创建dao层,然后再service中调用
@Repository
public class ProductDao {public Product getProductById(String id) {Product product = new Product();product.setId(id);product.setName("C语言从入门到精通 精粹版");product.setPrice(13.6);return product;}
}

启动工程,然后打开浏览器输入:http://localhost:8080/product/12
至此一个简单的SpringBoot工程创建完毕。

最后编辑于:2020-08-19 16:27


喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

3.ROS串口实例

#include <iostream> #include <ros/ros.h> #include <serial/serial.h> #include<geometry_msgs/Twist.h> using namespace std;//运行打开速度控制插件&#xff1a; rosrun rqt_robot_steering rqt_robot_steering //若串口访问权限不够&#xff1a…

详解PEFT库中LoRA源码

前言 GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文&#xff0c;并对其进行了中文翻译。还有部分最佳示例教程。如果有帮助到大家&#xff0c;请帮忙点亮Star&#xff0c;也是对译者莫大的鼓励&#xff0c;谢谢啦~本…

读书笔记-《Spring技术内幕》(三)MVC与Web环境

前面我们学习了 Spring 最核心的 IoC 与 AOP 模块&#xff08;读书笔记-《Spring技术内幕》&#xff08;一&#xff09;IoC容器的实现、读书笔记-《Spring技术内幕》&#xff08;二&#xff09;AOP的实现&#xff09;&#xff0c;接下来继续学习 MVC&#xff0c;其同样也是经典…

Spring底层原理之bean的加载方式八 BeanDefinitionRegistryPostProcessor注解

BeanDefinitionRegistryPostProcessor注解 这种方式和第七种比较像 要实现两个方法 第一个方法是实现工厂 第二个方法叫后处理bean注册 package com.bigdata1421.bean;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.…

解决idea中git无法管理项目中所有需要管理的文件

点击文件->设置 选择版本控制—>目录映射 点击加号 设置整个项目被Git管理

【python入门】自定义函数

文章目录 定义自定义函数的基本语法参数类型示例代码函数作用域匿名函数&#xff08;Lambda&#xff09;闭包装饰器 Python中的自定义函数允许你编写一段可重用的代码块&#xff0c;这段代码可以带参数&#xff08;输入&#xff09;&#xff0c;并可能返回一个值&#xff08;输…

MySQL高级-事务-并发事务演示及隔离级别

文章目录 0、四种隔离级别1、创建表 account2、修改当前会话隔离级别为 read uncommitted2.1、会出现脏读 3、修改当前会话隔离级别为 read committed3.1、可以解决脏读3.2、会出现不可重复读 4、修改当前会话隔离级别为 repeatable read&#xff08;默认&#xff09;4.1、解决…

解决docker镜像pull失败的有效

机器环境 本实践将在 Ubuntu 22.04.3LTS 系统上进行测试 docker 版本Docker Engine - Community 24.0.6 &#xff0c;原则上docker版本无影响 本实践进仅学习研究使用&#xff0c;无作他用途。 背景 曾几何时&#xff0c;docker镜像的拉去会失败&#xff0c;网速会慢&#xff0…

代码随想录算法训练营第五十三天| 739. 每日温度、 496.下一个更大元素 I、503.下一个更大元素II

LeetCode 739. 每日温度 题目链接&#xff1a;https://leetcode.cn/problems/daily-temperatures/description/ 文章链接&#xff1a;https://programmercarl.com/0739.%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6.html 思路 * 单调栈的本质是空间换时间&#xff0c;因为在遍历的过…

【论文阅读】transformer及其变体

写在前面&#xff1a; transformer模型已经是老生常谈的一个东西&#xff0c;以transformer为基础出现了很多变体和文章&#xff0c;Informer、autoformer、itransformer等等都是顶刊顶会。一提到transformer自然就是注意力机制&#xff0c;变体更是数不胜数&#xff0c;一提到…

【目标检测】DN-DETR

一、引言 论文&#xff1a; DN-DETR: Accelerate DETR Training by Introducing Query DeNoising 作者&#xff1a; IDEA 代码&#xff1a; DN-DETR 注意&#xff1a; 该算法是在DAB-DETR基础上的改进&#xff0c;在学习该算法前&#xff0c;建议掌握DETR、DAB-DETR等相关知识…

TCP和UDP的区别以及应用场景

TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;是两种不同的传输层协议 区别 TCP是面向连接的&#xff0c;UDP是无连接的&#xff1b; TCP是可靠的&#xff0c;UDP是不可靠的&#xff1b; TCP是面向字节流的&#xff0c;UDP是面向数据…

如何高效配置与使用Pip换源

目录 1. Pip源的基本概念 1.1 常见的国内镜像源 2. 临时换源 2.1 使用命令行参数指定镜像源 2.2 安装多个包时指定镜像源 3. 永久换源 3.1 修改用户级配置文件 3.1.1 创建和编辑配置文件 3.2 修改全局配置文件 3.2.1 创建和编辑全局配置文件 4. 验证换源配置 5. 切…

VMamba: Visual State Space Model论文笔记

文章目录 VMamba: Visual State Space Model摘要引言相关工作Preliminaries方法网络结构2D-Selective-Scan for Vision Data(SS2D) VMamba: Visual State Space Model 论文地址: https://arxiv.org/abs/2401.10166 代码地址: https://github.com/MzeroMiko/VMamba 摘要 卷积神…

防火墙共性检测技术

防火墙共性检测技术 防火墙共性检测技术是指防火墙在监控和控制网络流量时&#xff0c;共同采用的一些检测和过滤方法。无论是哪种类型的防火墙&#xff0c;这些技术都可以用于识别和阻止恶意流量&#xff0c;确保网络安全。以下是防火墙共性检测技术的详细介绍&#xff0c;包…

axios的基本使用和vue脚手架自带的跨域问题解决

axios的基本使用和vue脚手架自带的跨域问题解决 1. axios 1.1 导入axios npm i axios1.2 创建serve1.js serve1.js const express require(express) const app express()app.use((request,response,next)>{console.log(有人请求服务器1了);console.log(请求来自于,re…

go Channel 原理 (一)

Channel 设计原理 不要通过共享内存的方式进行通信&#xff0c;而是应该通过通信的方式共享内存。 在主流编程语言中&#xff0c;多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信&#xff0c;同时也提供了一种不同的并发模型&#xff0c;即通…

npm ci vs npm i

npm ci vs npm i 几个关键区别&#xff1a;该选择哪个&#xff1f; 通过 npm ci 和 npm i 两个命令&#xff0c;都可安装项目的依赖。那么这两个命令有什么区别呢&#xff1f; 几个关键区别&#xff1a; 目的和用途&#xff1a; npm ci &#xff1a;根据项目中的 package-lock…

AI奏响未来乐章:音乐界的革命性变革

AI在创造还是毁掉音乐 引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;正在逐渐渗透到我们生活的每一个角落&#xff0c;音乐领域也不例外。AI技术的引入&#xff0c;不仅为音乐创作、教育、体验带来了革命性的变革&#xff0c;更为整个音乐产业注入了…

顺序表应用——通讯录

在本篇之前的顺序表专题我们已经学习的顺序表的实现&#xff0c;了解了如何实现顺序表的插入和删除等功能&#xff0c;那么在本篇当中就要学习基于顺序表来实现通讯录&#xff0c;在通讯录当中能实现联系人的增、删、查改等功能&#xff0c;接下来就让我们一起来实现通讯录吧&a…