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
- SpringBoot——初接触
- SpringBoot框架初接触
- javamail——初接触
- SSM——框架初接触
- SpringBoot学习——SpringBoot入门HelloWorld
- springboot系列之一——springboot入门
- SpringBoot学习笔记——Hello SpringBoot!
- VSTO——初步接触
- SpringBoot——入门
- SpringBoot——配置文件
- SpringBoot——configuration
- SpringBoot系列—概述
- springboot—restful风格
- SpringBoot—入门
- WCF初接触实作——使用配置文件(二
- “第一次亲密接触”——我与业务初相遇
- “第一次亲密接触”——项目之初
- ExtJS初接触 —— 了解 Ext Core
- ZooKeeper集群搭建 windows篇
- 金蝶EAS,KDTable数据填充,需重新解析表格tblMain.checkParsed()
- 安装mysql出现卡死
- win下使用realsense+opencv获取RGBD数据
- ADB server didn't ACK failed to start daemon
- SpringBoot——初接触
- python模块源代码加密方法
- java语言基础|java语言特点
- 字符串处理,根据传入的参数进行分离,目前较适合字符串中提取引号包裹的部分的提取
- oracle发送邮件
- Mybatis Generator完整配置详解
- Linux下mysql安装教程,环境:阿里云 Ubuntu 14.04 mysql 5.6
- ...offsetLeft,clientX ,offsetX 定义和区别
- ios 推送