SpringBoot——初接触

来源:互联网 发布:windows swift 编译器 编辑:程序博客网 时间:2024/05/18 21:43

 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@RestControllerpublic 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;@RestControllerpublic 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:8ADD test-0.0.1-SNAPSHOT.jar app.jarEXPOSE 8080ENTRYPOINT ["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


原创粉丝点击