手把手教你怎么创建spring项目

创建Spring项目

通过spring.io生成初始代码,配置如下

下载好会得到一个.zip文件,解压导入IDEA就可以开始了,这是基础的项目结构

让我们打开src/main/java/geektime/spring/hello/hellospring/HelloSpringApplication.java,修改成如下代码

package geektime.spring.hello.hellospring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class HelloSpringApplication {

	public static void main(String[] args) {
		SpringApplication.run(HelloSpringApplication.class, args);
	}

	@RequestMapping("/hello")
	public String hello() {
		return "Hello Spring";
	}
}

接着运行我们修改的代码,运行成功后,console会打印如下信息

/Library/Java/JavaVirtualMachines/jdk-15.0.1.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=55568:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/lidean/Downloads/hello-spring/target/classes:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/2.5.0/spring-boot-starter-actuator-2.5.0.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-starter/2.5.0/spring-boot-starter-2.5.0.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot/2.5.0/spring-boot-2.5.0.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.5.0/spring-boot-autoconfigure-2.5.0.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.5.0/spring-boot-starter-logging-2.5.0.jar:/Users/lidean/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/lidean/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/lidean/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1.jar:/Users/lidean/.m2/repository/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar:/Users/lidean/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar:/Users/lidean/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/Users/lidean/.m2/repository/org/yaml/snakeyaml/1.28/snakeyaml-1.28.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.5.0/spring-boot-actuator-autoconfigure-2.5.0.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-actuator/2.5.0/spring-boot-actuator-2.5.0.jar:/Users/lidean/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.12.3/jackson-databind-2.12.3.jar:/Users/lidean/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.12.3/jackson-annotations-2.12.3.jar:/Users/lidean/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.12.3/jackson-core-2.12.3.jar:/Users/lidean/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.12.3/jackson-datatype-jsr310-2.12.3.jar:/Users/lidean/.m2/repository/io/micrometer/micrometer-core/1.7.0/micrometer-core-1.7.0.jar:/Users/lidean/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar:/Users/lidean/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.5.0/spring-boot-starter-web-2.5.0.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.5.0/spring-boot-starter-json-2.5.0.jar:/Users/lidean/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.12.3/jackson-datatype-jdk8-2.12.3.jar:/Users/lidean/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.12.3/jackson-module-parameter-names-2.12.3.jar:/Users/lidean/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.5.0/spring-boot-starter-tomcat-2.5.0.jar:/Users/lidean/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar:/Users/lidean/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.46/tomcat-embed-el-9.0.46.jar:/Users/lidean/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar:/Users/lidean/.m2/repository/org/springframework/spring-web/5.3.7/spring-web-5.3.7.jar:/Users/lidean/.m2/repository/org/springframework/spring-beans/5.3.7/spring-beans-5.3.7.jar:/Users/lidean/.m2/repository/org/springframework/spring-webmvc/5.3.7/spring-webmvc-5.3.7.jar:/Users/lidean/.m2/repository/org/springframework/spring-aop/5.3.7/spring-aop-5.3.7.jar:/Users/lidean/.m2/repository/org/springframework/spring-context/5.3.7/spring-context-5.3.7.jar:/Users/lidean/.m2/repository/org/springframework/spring-expression/5.3.7/spring-expression-5.3.7.jar:/Users/lidean/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar:/Users/lidean/.m2/repository/org/springframework/spring-core/5.3.7/spring-core-5.3.7.jar:/Users/lidean/.m2/repository/org/springframework/spring-jcl/5.3.7/spring-jcl-5.3.7.jar geektime.spring.hello.hellospring.HelloSpringApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.0)
2021-06-01 23:15:57.484  INFO 81444 --- [           main] g.s.h.h.HelloSpringApplication           : Starting HelloSpringApplication using Java 15.0.1 on MacBook-Pro-9.local with PID 81444 (/Users/lidean/Downloads/hello-spring/target/classes started by lidean in /Users/lidean/Downloads/hello-spring)
2021-06-01 23:15:57.488  INFO 81444 --- [           main] g.s.h.h.HelloSpringApplication           : No active profile set, falling back to default profiles: default
2021-06-01 23:15:58.610  INFO 81444 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-06-01 23:15:58.626  INFO 81444 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-06-01 23:15:58.626  INFO 81444 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.46]
2021-06-01 23:15:58.685  INFO 81444 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-06-01 23:15:58.685  INFO 81444 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1073 ms
2021-06-01 23:15:59.156  INFO 81444 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2021-06-01 23:15:59.195  INFO 81444 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-06-01 23:15:59.208  INFO 81444 --- [           main] g.s.h.h.HelloSpringApplication           : Started HelloSpringApplication in 2.658 seconds (JVM running for 3.251)
2021-06-01 23:15:59.254  INFO 81444 --- [           main] o.s.b.a.ApplicationAvailabilityBean      : Application availability state LivenessState changed to CORRECT
2021-06-01 23:15:59.256  INFO 81444 --- [           main] o.s.b.a.ApplicationAvailabilityBean      : Application availability state ReadinessState changed to ACCEPTING_TRAFFIC
2021-06-01 23:22:00.698  INFO 81444 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-06-01 23:22:00.698  INFO 81444 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-06-01 23:22:00.699  INFO 81444 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

从上面输出的信息我们可以知道Tomcat初始化部署在了8080端口,下面我们来访问试试

// 调用我们定义的router
$ curl http://127.0.0.1:8080/hello
Hello Spring%
// 记得我们之前生成项目使用的actuator依赖,用于检查项目是否健康
// 若出现DOWN,我们访问url就会失败
$ curl http://127.0.0.1:8080/actuator/health
{"status":"UP"}%

Maven替我们打个包

$ mvn clean packeage -Dmaven.test.skip
zsh: command not found: mvn

没命令。。。上链接

若有,可跳过

作者用的是macOszsh,需要做下面几步

# 给文件夹权限
$ sudo chown -R root:wheel Downloads/apache-maven*
# 移动
$ mv Downloads/apache-maven* /opt/apache-maven
# 打开zsh配置文件
$ nano ~/.zshrc
# 新增命令,写入~/.zshrc
$ export PATH=$PATH:/opt/apache-maven/bin

搞定后control+X回车搞定~ 重启下终端,检查mvn版本即可

$ zsh
# 检查Maven
$ mvn -version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /opt/apache-maven
Java version: 15.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-15.0.1.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.6", arch: "x86_64", family: "mac"

继续继续,maven打包我们的代码

$ mvn clean package -Dmaven.test.skip
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< geektime.spring.hello:hello-spring >-----------------
[INFO] Building hello-spring 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ hello-spring ---
[INFO] Deleting /Users/lidean/Downloads/hello-spring/target
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ hello-spring ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ hello-spring ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/lidean/Downloads/hello-spring/target/classes
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ hello-spring ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ hello-spring ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ hello-spring ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ hello-spring ---
[INFO] Building jar: /Users/lidean/Downloads/hello-spring/target/hello-spring-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.5.0:repackage (repackage) @ hello-spring ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.965 s
[INFO] Finished at: 2021-06-02T00:02:00+08:00
[INFO] ------------------------------------------------------------------------

可以看到生成的两个.jar包,一个18M一个却3.0K,因为前者有我们所有的依赖(该.jar包可执行),后者是原始的包

下面我们可以通过java -jar去执行这个jar包,可以看到也是暴露在8080端口,我们的程序可以作为一个单独的进程运行在里面

到此这篇关于手把手教你怎么写spring项目的文章就介绍到这了,更多相关spring项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java项目开启远程调试的方法步骤(tomcat、springboot)

    当我们运行一个项目的时候,一般都是在本地进行debug.但是如果是一个分布式的微服务,这时候我们选择远程debug是我们开发的利器. 环境 apache-tomcat-8.5.16 Linux 如何启用远程调试 tomcat开启远程调试 方法 切换到你的tomcat的bin目录/apache-tomcat-8.5.16/bin 下,执行: ./catalina.sh jpda start 执行上面的命令就可以开启远程debug了,如果想配置一些信息,比如端口号什么的,请参考下面的说明. 参数说明

  • 基于javamelody监控springboot项目过程详解

    JavaMelody是用来在QA和实际运行生产环境中监控Java或Java EE应用程序服务器的一个开源框架.它不是一个工具来模拟来自用户的请求,而是一个测量和计算用户在实际操作中应用程序的使用情况的工具,并以图表的形式显示,图表可以按天,周,月,年或自定义时间段查看. JavaMelody基础的监控包括Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求.jsp页面与业务接口方法(EJB3.Spring. Guice)的执行数量,平均执行时

  • Java springboot项目jar发布过程解析

    做springboot的都知道,发布方式不是war发布了,是jar发布,启动jar就可以直接运行,并且环境都是集成的. 首先,先将项目打包成jar,这里假设你的eclipse已经安装了maven插件. 右键-run as-maven Install 之后看控制台的信息: 到这里说明已经打包成功了. 在本地测试下(运行) 进入到你的磁盘,使用命令运行jar项目 java -jar classteacher.jar 可以看运行的信息: 看起来是成功的,然后可以打开网页看看,检验下. 到此,本地验证成

  • 使用Spring Boot搭建Java web项目及开发过程图文详解

    一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者.SpringMVC是非常伟大的框架,开源,发展迅速.优秀的设计必然会划分.解耦.所以,spring有很多子项目,比如core.context.

  • IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在

    本地启动springboot项目一直报一个工具类的找不到,但是我看了好几次,那个类明明就在项目中,不知道为什么一启动项目就报错,,说这个包xxxx不存在,,弄了我一晚上没睡好觉,,整的我都快开始怀疑人生了,.我是谁?我在那?我还适合敲代码吗? Error:(3, 38) java: 程序包org.springframework.stereotype不存在 Error:(4, 47) java: 程序包org.springframework.web.bind.annotation不存在 Error

  • JavaWeb项目中springmvc和tomcat对静态文件的处理

    1.激活Tomcat的defaultServlet来处理静态文件,web.xml配置 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> a.说到了这里另外说说url-pattern的配置 <!--url-pattern的三种写法--> <!--精确匹配:以&

  • 在IDEA中搭建最小可用SpringMVC项目(纯Java配置)

    1. 新建 SpringMVC 的 Web 项目 File - New - Project.. 勾选 SpringMVC 和 WebApplication ,点击Next 填写 Project name : hello 点击 Finish IDEA 会自动下载所需的 SpringMVC 的 jar 包 2. 代码编写 代码参考 <Spring 实战>(第四版),本文和书中代码略有差异 删除不需要的配置文件 删除 WEB-INF 下的 web.xml 删除 WEB-INF 下的 dispatch

  • Java的Spring框架中AOP项目的一般配置和部署教程

    0.关于AOP 面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是Spring框架中的一个重要内容.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP是OOP的延续. 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等. 主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过

  • Springboot项目javax.validation使用方法详解

    javax.validation 是基于JSR-303标准开发出来的,使用注解方式实现,及其方便,但是这只是一个接口,没有具体实现. Hibernate-Validator是一个hibernate独立的包,可以直接引用,他实现了javax.validation同时有做了扩展,比较强大.SpringBoot在内部集成了hibernate-validation,可以直接使用. 常用注解: 代码 说明 @Null 被注解的元素必须为null @NotNull 被注解的元素必须不为null @Asser

  • 手把手教你怎么创建spring项目

    创建Spring项目 通过spring.io生成初始代码,配置如下 下载好会得到一个.zip文件,解压导入IDEA就可以开始了,这是基础的项目结构 让我们打开src/main/java/geektime/spring/hello/hellospring/HelloSpringApplication.java,修改成如下代码 package geektime.spring.hello.hellospring; import org.springframework.boot.SpringApplic

  • MyEclipse2017创建Spring项目的方法

    MyEclipse2017创建Spring项目,供大家参考,具体内容如下 1.创建一个Web Project 2.右击项目-->Properties 3.搜索Spring -->Peoject Facets-->在右边找到Spring,打勾并保存 4.测试 4.1 创建个类 package cn.spring.user; /** * * @author Dzsom * @date 2018年3月13日下午11:42:03 * @encoding UTF-8 * @version 1.0

  • 手把手教你写一个spring IOC容器的方法

    本文分享自华为云社区<手把手教你写一个spring IOC容器>,原文作者:技术火炬手. spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制.今天就带大家手写一个spring IOC容器. 第0步(准备工作): (1)JDK1.8及java环境变量 (2)maven包及maven环境变量 (3)idea 第1步(创建项目,引入tomcat包) PS:由于该项目的作用

  • 手把手教你搭建vue3.0项目架构

    前言: GitHub上我开源了vue-cli.vue-cli3两个库,文章末尾会附上GitHub仓库地址.这次把2.0的重新写了一遍,优化了一下.然后按照2.0的功能和代码,按照vue3.0的语法,完全重写了一遍.虽然名字叫cli,其实两个库都是基于vue-cli创建的.做这个的目的是为了工作中快速启动项目,毕竟切片打包.less.axios.vuex.router.UI框架.基础文件目录.权限,这些都是基操,当然项目不同,还是要做些调整的.这两个项目的master分支都是最基础的东西,里面还包

  • 手把手教你搭建一个vue项目的完整步骤

    目录 一.环境准备 1.安装node.js 2.检查node.js版本 3.为了提高我们的效率,可以使用淘宝的镜像源 二.搭建vue环境 1.全局安装vue-cli 三.创建vue项目 1.用cmd命令创建项目 1.1创建文件 1.2选择配置信息 1.3选择版本 1.4路径模式选择 1.5语法代码格式检查 1.6第三方文件存在的方式 1.7是否保存本次配置信息(保存预设) 1.8创建成功 1.9运行 1.10启动 1.11停止服务 2.用vue资源管理器创建 2.1进入vue资源管理器界面(vu

  • 使用Idea maven创建Spring项目过程图解

    这篇文章主要介绍了使用Idea maven创建Spring项目过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.环境准备:Mac Idea maven 3.6.3 二.创建过程 1.新建项目: 以上完成了普通 maven 项目的创建,以下增加 Spring 的配置信息 2.Spring 项目支持信息配置 选中项目 ====>右键 ====> 点击 Add FrameWork Support... 勾选 Spring 并且 勾选 Cr

  • IDEA+Maven创建Spring项目的实现步骤

    这篇随笔搭建的工程是普通的Spring工程,用于学习Spring框架,如果要搭建SpringMVC工程,可以参考另一篇 第一步:在IDEA点击new -> project 左侧选择Maven,直接点击Next.第一次使用IDEA的朋友,顶部还要选择Project SDK路径,就是Java的安装路径. 这里随便填一下之后点击Next 选择项目存放路径,或者保持默认,点击Finish,来到工程页面之后,在项目文件夹上右键并选择Add Framework Support 在这个页面找一下Spring,

  • idea创建Spring项目的方法步骤(图文)

    Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原形衍生而来.它是为了解决企业级开发的复杂性而创建的.Spring使用基本的javaBaen来完成以前只可能由EJB完成的事情,然而Spring的用途不仅限于服务器端的开发,从简单性.可测试性.低耦合的角度而言任何java应用都可以在s

  • 手把手教你如何在vue项目中使用rem布局

    目录 如何在vue项目中使用rem布局 方法一:使用lib-flexible 1. 安装包 2. 引入文件 3. 根据需要设置rem 4.使用rem 方法二:使用postcss-pxtorem 1. 安装包 2. 创建rem.js文件 3. 新建 .postcssrc.js 4. 在main.js中引入 5. 设置body的font-size 6. 可参照流程图 总结 如何在vue项目中使用rem布局 场景: 在我们开发移动端项目中,实现手机页面布局,需要使用rem布局,那么该如何使用呢? 本文

  • IDEA社区版创建spring boot项目的安装插件的图文教程

    由于最近idea的官方查的有点严,pojie的企业版idea总失效,现在给大家说一下社区版idea创建spring项目的一个方法!!! 在项目实战中了解到的IDEA创建springboot项目,我找了下我的IDEA没有spring Initializr,网上的说法我试过搜不到spring boot插件,经过一番折腾发现社区版的不是springboot插件,而是spring Assistant插件,在settings中plugins中搜索 如果有就勾选,没有选择安装即可(会提示重启工具) 然后ne

随机推荐