SpringBoot——初接触

xiaoxiao2021-02-27  235

 Java应用Docker

a)         使用Spring Boot编写一个简单的Java应用,提供HTTP接口。

b)         学习Docker基本用法,包括编写Dockerfile

c)         将以上Java应用打包为Docker镜像,成功运行。

对于a:使用Spring Boot编写一个简单的Java应用,提供HTTP接口。

用maven新建一个项目

创建时可以使用这个:maven-archetype-archetype.

在pom.xml中加入依赖:

参考文件如下:

<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>test</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> name test是maven项目工程名

其中plugins里面的spring-boot-maven-pluginns得添加。不然后面无法使用maven把依赖打入jar包里面。

然后再src/main/java路径下开始建立java文件

App.java:

package test.test; 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; /** * Hello world! * */ @SpringBootApplication @RestController public class App { @RequestMapping("/") public String greeting() { return "Hello World!"; } public static void main( String[] args ) { SpringApplication.run(App.class, args); System.out.println( "Hello World!1" ); } }

@SpringBootApplication是Spring Boot框架中描述Spring应用的类,它的run()方法会创建一个Spring应用上下文(Application Context)。另一方面它会扫描当前应用类路径上的依赖,例如本例中发现spring-webmvc(由 spring-boot-starter-web传递引入)在类路径中,那么Spring Boot会判断这是一个Web应用,并启动一个内嵌的Servlet容器(默认是Tomcat)用于处理HTTP请求。

简单来说,就是程序的入口

SpringApplication.run(App.class, args); 必须加上去,不然等于就执行了一个打印helloworld的语句,其他都不会加载到。

Greeting类:

package test.test; public class Greeting { private final long id; private final String content; public Greeting(long id, String content) { this.id = id; this.content = content; } public long getId() { return id; } public String getContent() { return content; } }

package test.test; import java.util.concurrent.atomic.AtomicLong; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class GreetingController { private static final String template = "Hello, %s!"; private final AtomicLong counter = new AtomicLong(); @RequestMapping("/greeting") public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) { return new Greeting(counter.incrementAndGet(),String.format(template, name)); } } GreettingController主要是针对当访问路径为:localhost:8080/greeting

时返回下面的页面:

提供了HTTP接口。

@RequestMapping是对访问路径下执行对应的方法

都弄好了以后,直接执行run as javaApplication程序就好了。

对于bc)  学习Docker基本用法,包括编写Dockerfile

建立:docker build -t wisely/ecnu .

运行:  docker run -p 8080:8080 -t wisely/ecnu

执行jar文件:java -jar ecnuj.jar

建立注意最后面的一个.  表示按使用同路径下编写好的Dockerfile文件

Dockerfile文件如下:

FROM java:8 ADD test-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"] 其中ADD 后面是jar文件。后面的app.jar随便写,跟第四行保持相同即可。

EXPOES是访问的端口号。

这些编好了以后,就使用docker 建立 与运行就好  wisely/ecnu这是一个名字,随便改。

在编这些之前可以先尝试吧jar文件单独运行,看是否能够运行。

打出maven依赖的jar包:

第一次打包的时候会弹出下面的

框中填上package以后,然后refresh下就能看到生成的jar包了,里面已经包含了maven依赖。

最后运行成功以后 就是这样了:

成功。

可以参考:https://yq.aliyun.com/articles/47344

这里是maven打jar包的一个小参考:http://blog.csdn.net/sai739295732/article/details/49444447

docker的一些命令:

查看本地镜像列表docker images 镜像删除,后面跟的是镜像的id号:docker rmi a3a308108709 正在运行在container中的镜像是无法删除的。 docker ps 查看运行中的容器列表 docker ps -a 查看运行和停止状态的容器 停止容器:docker stop container-name/container-id 如:docker stop ba07c6640951

转载请注明原文地址: https://www.6miu.com/read-9850.html

最新回复(0)