一、idea集成docker
tcp://ip:2375
创建一个maven测试项目
<!--dependencemanagement-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
</parent>
<!--依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- springboot打包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包后从target内找到jar包,随意一个文件夹位置进cmd 执行java -jar jar包
写一个controller
二、Linux 配置jdk
在 /etc/profile内输入下述:
JAVA_HOME=/usr/local/softwares/jdk/jdk1.8.0_341
CLASSPATH=.:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
在jdk文件夹内创建一个文件夹,将jar包上传至此
开放防火墙的端口
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
在jar包所在路径下:
java -jar test-1.0-SNAPSHOT.jar
建新项目时,创建一个Dockerfile
FROM anapsix/alpine-java
MAINTAINER ohb
EXPOSE 9090
ADD target/hello-docker-1.0-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
三、知识延展
RestController和Controller的区别?
Controller
注解用于标识普通的控制器类,旨在处理各种类型的HTTP请求,并返回相应的视图。而RestController
注解是Controller
注解的一个特殊变体,它结合了Controller
和ResponseBody
注解的功能。RestController
类中的方法将返回数据(如JSON、XML等),而不是视图。
Controller
注解默认情况下会假设方法返回的是视图名称或模型数据,然后根据配置的视图解析器来解析并渲染视图。相反,RestController
注解默认情况下会将方法返回值直接转换为响应主体,并使用适当的消息转换器将其序列化为客户端期望的数据格式(如JSON)。
Controller
注解通常用于构建传统的MVC应用程序,其中需要处理多种类型的请求,并根据请求返回不同的视图。而RestController
注解通常用于构建RESTful风格的Web服务,其中通过提供API接口,以数据的形式返回给客户端。
Autowired和Resource的区别?
Autowired
是Spring框架提供的注解,它按照类型自动装配所需的依赖项。它从Spring应用上下文中查找匹配的bean,并将其注入到标记了Autowired
的字段、构造函数或方法参数中。相反,Resource
是Java的标准注解。
Autowired
默认使用byType方式进行注入,它会根据类型自动选择合适的bean进行注入。如果存在多个匹配类型的bean,可以通过指定Qualifier
注解来进一步缩小选择范围。而Resource
默认使用byName方式进行注入,它会根据名称与被注入字段或参数的名字进行匹配。
Autowired
主要用于注入Spring管理的bean,包括Service、Repository、Component等。而Resource
既可以注入Spring管理的bean,也可以注入非Spring管理的对象,如JDBC DataSource、JMSConnectionFactory等。
Autowired
注解的依赖项是可选的,即如果找不到匹配的bean,字段可以为null。相反Resource
注解的依赖项是强制要求的,如果找不到匹配的bean,会抛出异常。