springBoot入门简介,使用spring initializer快速创建spring Boot项目

springBoot入门简介,使用spring initializer快速创建spring Boot项目springBoot入门简介,使用spring initializer快速创建spring Boot项目

大家好,又见面了,我是你们的朋友全栈君。

传统“单体”spring缺点:许多应用结合在一起,牵一发而动全身。一个小小的bug修改,或者日益增长的需求变更都需要停止服务重新启动。

传统“单体”spring优点:开发测试简单,只需要把整个应用放到服务器上就行了,不给运维带来麻烦。水平扩展也很简单,当应用的负载过大,既可以把应用负载很多分,通过负载均衡就可以提高并发能力。

 springboot是把应用的几个分应用分开(或说是功能 点分块),通过动态组合(包括数量和顺序上的组合)协调工作,其中如果某部分应用的处理业务能力较为复杂就可以多分多加几个应用,提高并发。每个功能点可以独立升级变更,可替换的。

springBoot入门简介,使用spring initializer快速创建spring Boot项目

一,开发HelloWorld

1,环境

jdk:1.8

maven:3.3以上版本

maven的setting文件修改部分:

<profiles>
		<profile>
			<id>jdk-1.8</id>

			<activation>
				<activeByDefault>true</activeByDefault>
				<jdk>1.8</jdk>
			</activation>

			<properties>
				<maven.compiler.source>1.8</maven.compiler.source>
				<maven.compiler.target>1.8</maven.compiler.target>
				<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
			</properties>
		</profile>
	</profiles>

2,创建maven工程。

3,导入spring-boot相关依赖:

依赖的配置就不用手写了,到官网找指导案例,如这个网址:https://spring.io/guides/gs/rest-service/

springBoot入门简介,使用spring initializer快速创建spring Boot项目

把箭头指的菜单点开就行了。

然后在pom.xml文件中设置以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.atguigui</groupId>
    <artifactId>spring-boot-01-helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

3,编写主程序,启动springBoot应用

主程序代码如下:

package com.liuxin;

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

/**
 * @SpringBootApplication 标注一个主程序,说明这是个springboot的web程序
 */
@SpringBootApplication
public class Helloworld {

    public static void main(String[] args) {
        //Spring 应用跑起来
        SpringApplication.run(Helloworld.class,args);
    }
}

控制器代码:

package com.liuxin;

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

@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String Hello(){
        return "hello world";
    }
}

文件目录结构:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

然后启动,点下面位置就能启动了,控制台会有相应的日志,和端口

springBoot入门简介,使用spring initializer快速创建spring Boot项目

然后页面输入localhost:8080/hello,  就能看到我们的hello world了。

springBoot入门简介,使用spring initializer快速创建spring Boot项目

4,部署应用,把程序打包,

springBoot入门简介,使用spring initializer快速创建spring Boot项目

找到上图位置,双击package就能开始打包了,完成后会在工程目录中有相应的工程.jar包。

然后复制到桌面上,右键属性找到并复制目录,然后cmd打开dos命令窗口。

执行如下:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

springBoot入门简介,使用spring initializer快速创建spring Boot项目

最后执行命令:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

这样同样能够在页面访问我们的项目。(注意先停掉之前在idea启动的服务)

 


二,简介

1,为什么springboot 可以这么简单的配置?

打开pom.xml文件,按住ctrl键,点进去下面位置,我们看看导入jar包里面有什么东西?

springBoot入门简介,使用spring initializer快速创建spring Boot项目

可以看到下图位置,

spring-boot-dependencies是spring-boot-starter-parent的父项目。
 

紧接着继续往下点开,可以看到各种jar包的版本:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

 

2,导入的依赖:

看这里:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

点击上面<artifactId>spring-boot-starter-web</artifactId> 可以看到spring-boot-starter-web下面有哪些jar包,这属于web模块的jar包.

starters:在这里的意思是一系列依赖描述的组合,即启动器。

 

spring boot 将所有的功能场景提取出来,做成一个个的starters(场景启动器),需要时只需要在项目中引入这些starters相关的场景,然后所有的依赖都会导进来。

 

基本上所有的starter启动器pom配置这个链接中都可以找到:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html#using-boot-dependency-management

或者百度spring boot starters,点这里也可以:springBoot入门简介,使用spring initializer快速创建spring Boot项目

 


三,使用spring initializer快速创建spring Boot项目

打开idea,创建工程:file-project –》选择下图位置:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

下一步,创建项目名,组织id,模块id:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

下一步,选择项目类型,或者说是功能模块:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

finish,就能够自动创建工程,并能导入相应依赖了。

创建完成后,

(1)我们看新项目中的pom.xml,会有相应的启动器依赖:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

(2)并且主程序居然也给我们自动生成了:

springBoot入门简介,使用spring initializer快速创建spring Boot项目

下面写个controller来测试下,

注意要和控制器在同一个目录级别创建controller包,如果是在java目录下,这启动后页面上会报404(先这样记,后面再找优化方法,)

springBoot入门简介,使用spring initializer快速创建spring Boot项目

controller的 内容如下:

package com.example.springboot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//@ResponseBody  //加在这里说明这里控制器的所有方法返回的数据直接写给浏览器 (如果是对象,则转为json数据
//@Controller
@RestController  //z这个注解是@Controller和@ResponseBody的合体
public class HelloController {

    @RequestMapping("/helloe")
    public String hello(){
        return "hello world";
    }

}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106001.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kong 网关 修改返回数据_kong网关教程

    kong 网关 修改返回数据_kong网关教程一、简介路由用来匹配客户端向上游服务器请求的规则,也就是客户端调用的API,每个路由(Route)和一个服务(Service)相关联,一个服务可有有多个路由,我们可以对每一条路由进行细粒度的配置,可以使用正则表达式进行通用的配置。二、重要属性创建一个路由需要配置的属性,其中路径paths为必须设置,其余为可选。AttributesDescriptionname…

    2022年9月10日
    0
  • linux futex浅析[通俗易懂]

    linux futex浅析[通俗易懂]Futex,FastUserspacemuTEXes,作为linux下的一种快速同步(互斥)机制,已经存在了很长一段时间了(sincelinux2.5.7)。它有什么优势?又提供了怎样一些功能,本文就简单探讨一下。futex诞生之前在futex诞生之前,linux下的同步机制可以归为两类:用户态的同步机制和内核同步机制。用户态的同步机制基本上就是利用原子指令实现的spinlock。最简单的实现就是使用一个整型数,0表示未上锁,1表示已上锁。trylock操作就利用原子指令尝试将0改为1

    2022年9月21日
    0
  • ModelAndView 配置与使用「建议收藏」

    ModelAndView 配置与使用「建议收藏」一,ModelAndView介绍:1)ModelAndView用于后台与前端页面交互;2)可以用于重定向与转发到指定页面,3)可以保存数据然后渲染到页面二,使用:1)在Controlle

    2022年7月1日
    20
  • 扩充NetCMS的功能:添加{TM:Repeater}{/TM:Repeater}标签[通俗易懂]

    扩充NetCMS的功能:添加{TM:Repeater}{/TM:Repeater}标签[通俗易懂]本文档为{TM:Repeater}{/TM:Repeater}标签的说明文档,创建的目标是打算制造一个系列文档的索引,索引的目标是关于这个标签的相关文档。简要说明:NetCMS1.7(以下简称NT)并非十分完善,里面包含了数量众多的BUG不说,功能上也带着一些欠缺。比如说这次之所以添加新标签的念头,就是原有的网站结构不完善。NT的是三级网站结构:“首页-列表页—详细页”。而实际…

    2022年9月28日
    0
  • spark shuffle参数调优

    spark shuffle参数调优

    2021年11月27日
    43
  • phpstorm中完成一键快速注释函数头

    phpstorm中完成一键快速注释函数头

    2021年10月31日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号