Springboot初次学习

-- 介绍取自springboot中文文档 :https://www.breakyizhan.com/springboot/3032.html

Spring Boot可以轻松创建可以运行的独立的,生产级的基于Spring的应用程序。我们对Spring平台和第三方库采取自己的看法,以便您尽可能轻松地使用本教程。大多数Spring Boot应用程序只需要很少的Spring配置。

您可以使用Spring Boot来创建可以使用java -jar或更传统的war部署来启动的Java应用程序 。我们还提供了一个运行“spring script”的命令行工具。

我们的主要目标是:

  • 为所有Spring开发提供一个更快,更广泛的入门体验。
  • 立即开始开发。
  • 提供大型项目(如嵌入式服务器,安全性,指标,运行状况检查和外部配置)通用的一系列非功能性功能。
  • 绝对不会生成代码,并且不需要XML配置。

---------------------------------------------------------------------------------------一小段分割线----------------------------------------------------------------

springboot自带tomcat容器,并且springboot执行的是约定大于配置的原则

IDEA建立springboot:new-file-newproject-springbootinitialize-然后在web选项中打勾,从而引入内置的web开发组件

然后由于根据maven的构建,设置坐标值的设置:参数,类名

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

pom.xml文件的结构
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--
配置父级依赖,<artifactId>spring-boot-starter-parent</artifactId>主要作用是管理springboot依赖的版本;
当配置父级依赖之后,所有springboot的相关依赖都不需要配<version></version>
-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--
作者:无力吐槽的桔子
时间:2019-05-28
描述:这个配置是为了引入与web容器相关的,进行web开发的组件
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!--
作者:无力吐槽的桔子
时间:2019-05-28
描述:与测试相关的依赖的引入
-->

<!--
作者:无力吐槽的桔子
时间:2019-05-28
描述:src文件夹下的main文件下的java类,包含了一个注解还有一个main方法
-->
-------------------------------------------------------------------------------------------------------------------------------------
启动类:命名规则:项目名称+application
特点:自动创建,
作用:1.进行项目的启动2.启动自动配置
package com.example.hellospringboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//组合注解:包含和组合了其他的注解
public class HellospringbootApplication {//项目名+application

public static void main(String[] args) {
//main方法就是作为程序的入口,可以让程序的内容运行,调用其他的方法,写在这里是作为启动类,来启动整个项目;springboot内置了一个web容器,启动就是靠它来启动
SpringApplication.run(HellospringbootApplication.class, args);//
}

}
------------------------------------------------------------------------------------------------------------------------------------------
按住ctrl点击注解进入到注解配置文件中,以下三个注解是最重要的
@SpringBootConfiguration 作用:把application的类标志为spring的容器,就可以在类中进行spring的配置,进行一些管理
@EnableAutoConfiguration 作用:启动springboot的自动配置
@ComponentScan 作用:对上面所有的注解进行扫描,扫描添加的所有的注解,并且让注解生效
-------------------------------------------------------------------------------------------------------------------------------------------
resources文件夹下的application.properties文件
这个文件可以进行一些系统的配置,虽然约定>配置,但是并不是不需要配置
test文件夹下的文件是用来进行测试的
--------------------------------------------------------------------------------------------------------------------------------------------
package com.example.hellospringboot;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

/**
* 这是个controller,需要controller注解
* 有了,需要请求controller的方法,来获取到输出的字符串
*/
@RestController
public class HelloController {
//这里需要对请求和后台的方法进行映射,springmvc需要配置handler Mapping
//这里直接使用了注解request Mapping就可以了
@RequestMapping("/sayHello")
//mvc将方法里面的字符串解析成视图名,根据视图名找到jsp或者其他媒介的显示
//这里由于简单起见只需要从前台获取字符串就可以了,不需要访问jsp
//可以把返回的字符串直接返回浏览器里面的response body区域,如何放置就加注解就可以了
//就可以把return的字符串直接以json或xml格式返回给前台,就不用jsp进行显示
//这是4.0之前的写法,4.0之后的写法就是把responsebody注解删掉,把上面的controller写成restcontroller,就可以标注controller内部的所有方法默认添加responsebody注解的


public String sayHello(){

return "hello spring boot";
}

}
-----------------------------------------------------------------------------------------------------------------------------------------
用idea启动程序
1.首先把文件打包成jar或war包,点击idea右侧maven中的项目名,里面有一个lifecycle,向下点击install即可给项目打包,项目中会出现target文件夹,里面存放的是编译好的jar文件//第三种和第四种启动方法用到这个
2.项目有四种启动方式:
(1)直接在写的程序中点击run
(2)打开application文件,点击方法左侧的绿色三角或者直接run
(3)打开控制台下方的terminal,然后输入cd target进入target文件夹,然后输入java -jar 项目名称即可;如果要停止程序按ctrl+c
(4)terminal中输入cd..进入根目录输入mvn spring-boot:run也可以启动,按ctrl+c也会停止
3.在控制台内部会输出控制信息,可以看到启动的端口号和启动时间,然后打开浏览器,输入地址+方法名直接运行方法,如果请求方法失败springboot会提供一个报错信息。

 ---------------------------------------------------------------

idea如何看结构图,点击右侧maven点击项目,点击右上窗口,可以获得maven-project的项目图

------------------------------------------------------------------------------------------------------------------------------手动分割---------------------------------------------------------------------------------

这个是根据课工场课程学习的,从头开始配就可以搭出一个springboot简单的小文件=。=阔以去试试

转载于:https://www.cnblogs.com/chuxuedejuzi/p/10939330.html

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

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

相关文章

第二十六期:英国建设下一代IOT基础设施的历史机遇和挑战

无论未来物联网发展的中心在哪里&#xff0c;都会带来一笔巨大的财富。但许多地区面临的真正障碍是缺乏可用的光纤基础设施来形成回程网络。接下来看一看全光纤在英国的推广情况。 作者&#xff1a;风车云马编译 世界各地的市政当局都在呼吁制定支持5G的基础设施计划。这些基…

[Leetcode][第889题][JAVA][根据前序和后序遍历构造二叉树][分治][递归]

【问题描述】[中等] 【解答思路】 copyOfRange class Solution {public TreeNode constructFromPrePost(int[] pre, int[] post) {if(prenull || pre.length0) {return null;}return dfs(pre,post);}private TreeNode dfs(int[] pre,int[] post) {if(prenull || pre.length0)…

第二十七期:Deepfake视频正在快速传播,也许区块链能够阻止这波“瘟疫”

“假新闻”一词已经成为当下的热门话题&#xff0c;而Deepfake(即看似真实&#xff0c;但实为伪造的视频操纵行为)则会进一步加剧民众与媒体之间的不信任危机。 作者&#xff1a;佚名来源 “假新闻”一词已经成为当下的热门话题&#xff0c;而Deepfake(即看似真实&#xff0c;…

POJ 1276 完全背包

Sample Input 735 3 4 125 6 5 3 350 633 4 500 30 6 100 1 5 0 1 735 0 0 3 10 100 10 50 10 10 Sample Output 735 630 0 0题意&#xff1a;你的银行卡里有 cash 元&#xff0c;而ATM机里有 n 种面值的钱&#xff0c;n行每种钱的数量和面值。  问 最多能从这台AT…

[Leetcode][第117题][JAVA][填充每个节点的下一个右侧节点指针][BFS]

【问题描述】[中等] 【解答思路】 1. 层次遍历 public Node connect(Node root) {if (root null)return root;Queue<Node> queue new LinkedList<>();queue.add(root);while (!queue.isEmpty()) {//每一层的数量int levelCount queue.size();//前一个节点Node …

第二十八期:Java线程池的四种用法与使用场景

线程池的作用主要是为了提升系统的性能以及使用率。文章刚开始就提到&#xff0c;如果我们使用最简单的方式创建线程&#xff0c;如果用户量比较大&#xff0c;那么就会产生很多创建和销毁线程的动作&#xff0c;这会导致服务器在创建和销毁线程上消耗的性能可能要比处理实际业…

php连接mysql遇到的问题: (HY000/1130) 和 [caching_sha2_password]

说明一下我的mysql是安装在虚拟机上的 所以遇到的第一个问题就是访问问题 解决&#xff1a; update user set host % where user root; 重启mysql服务 试了很多方法&#xff0c;也找了很多方法只有这个可行。 问题2&#xff0c; 解决&#xff1a; https://www.cnblogs.com/un…

847. Shortest Path Visiting All Nodes(一)

输入&#xff1a;一个无向图&#xff0c;各个节点的标签是0、1、2…N-1。graph[i][j]表示从节点i到节点j有一条边。 输出&#xff1a;返回每个节点都访问一遍需要的最少步骤。 规则&#xff1a;各个节点可以重复访问。 分析&#xff1a;  如果可以知道从每个节点开始&#xf…

第二十九期:程序员们该如何破局!

我是实打实的程序员一枚&#xff0c;身为一个过来人&#xff0c;我觉得有必要说几点针对程序员们的破局思维&#xff0c;希望能解决不少人的迷茫与困惑。 作者&#xff1a;stormzhang 新读者可能不知道&#xff0c;老读者都晓得&#xff0c;虽说现在转身做了自媒体&#xff0c…

[Leetcode][第75题][JAVA][颜色分类][双(三)指针][计数排序]

【问题描述】[中等] 【解答思路】 1. 三指针 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(1) class Solution {public void sortColors(int[] nums) {int n nums.length;int p0 0, p2 n - 1;for (int i 0; i < p2; i) {while (i < p2 && nums[i] …

SGU495 Kids and Prizes 概率DP,期望公式

题目大意&#xff1a;有N个盒子&#xff0c;里面都放着礼物&#xff0c;M个人依次去选择盒子&#xff0c;每人仅能选一次&#xff0c;如果里面有礼物则将礼物取出来&#xff0c;把空盒子放回原位&#xff0c;若没有礼物&#xff0c;则把空盒子放回原位。求礼物被拿走的个数的数…

847. Shortest Path Visiting All Nodes(二)

输入&#xff1a;有N个节点的无向图&#xff0c;每个节点被标注为0&#xff0c;1&#xff0c;…N-1。graph[i][j]表示从节点i到节点j有一条边。 输出&#xff1a;每个节点都访问一次&#xff0c;至少需要几步。 规则&#xff1a;可以重复访问一个节点。 分析&#xff1a;这道题…

第三十期:程序员报告:男性占比超87% 北京月薪12184元最高

1024“程序员节”&#xff0c;58同城招聘研究院发布程序员行业大数据报告显示&#xff0c;程序员男性占比高达87.29%。 作者&#xff1a;朝晖 1024“程序员节”&#xff0c;58同城招聘研究院发布程序员行业大数据报告显示&#xff0c;程序员男性占比高达87.29%&#xff0c;北…

[Leetcode][LCP 19][JAVA][秋叶收藏集][动态规划]

【问题描述】[中等] 【解答思路】 1. 动态规划 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(N) class Solution {public int minimumOperations(String leaves) {if (leaves null || leaves "") { // 排除 不合法参数情况return 0;}int length leave…

Qt 读写XML文件

#ifndef SIM_XMLSTREAMREADER_H_ #define SIM_XMLSTREAMREADER_H_#include <QString> #include <QXmlStreamReader>class XmlStreamReader { public:XmlStreamReader();~XmlStreamReader();//读取文件bool ReadFile(const QString &fileName);//跳过不能识别的…

第三十一期:QQ for Linux 复活,微信 for Linux 还远吗?

网友通过分析龙芯处理器的生态支持计划与近期 QQ for Linux 支持 MIPS 架构的事实&#xff0c;结合当前国产自主研发的大背景&#xff0c;认为距离微信 for Linux 的发布也不远了。 10 月 24 日晚间&#xff0c;腾讯突然发布了沉寂多年的 QQ for Linux 新版本&#xff0c;引起了…

[Leetcode][第141、142题][JAVA][环形链表][哈希表][快慢指针][数学推理]

【问题描述】[中等] 【解答思路】 141 每次遍历到一个节点时&#xff0c;判断该节点此前是否被访问过。 具体地&#xff0c;我们可以使用哈希表来存储所有已经访问过的节点。每次我们到达一个节点&#xff0c;如果该节点已经存在于哈希表中&#xff0c;则说明该链表是环形链…

847. Shortest Path Visiting All Nodes(三)

DP  这道题目还可以用动态规划解决。在图论中解决最短路径问题有Dijkstra算法和bellman-ford算法。这道题目也需要用到DP。所以先学习一下这两个算法的思想和区别。  两个算法比较  Dijstra算法用来解决单源最短路径问题。具体内容看[文章] 算法解决问题适用范围解决思路松…

样式集合

box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.3);转载于:https://www.cnblogs.com/xmyd/p/10943567.html

第三十二期:你们都是怎么学Python的?

自学Python一个月&#xff0c;怎么学都学不进去&#xff0c;感觉自己方法错了&#xff0c;现在连入门都不算&#xff0c;我该怎么办啊&#xff1f;这应该是每一个零基础学Python的小白都会面临的问题&#xff0c;今天我就结合自己的经历&#xff0c;和大家分享一下我是怎么学Py…