1.1. Consumer 函数式接口
public void demo(Consumer<String> consumer){
consumer.accept("ab");
}
demo(res->{
System.out.println(res);
});
原创2023/3/20大约 4 分钟
public void demo(Consumer<String> consumer){
consumer.accept("ab");
}
demo(res->{
System.out.println(res);
});
public abstract class Persion {
public abstract void setValue();
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
java
-Djava.rmi.server.hostname=10.160.13.111 #远程服务器ip,即本机ip
-Dcom.sun.management.jmxremote #允许JMX远程调用
-Dcom.sun.management.jmxremote.port=3214 #自定义jmx 端口号
-Dcom.sun.management.jmxremote.ssl=false # 是否需要ssl 安全连接方式
-Dcom.sun.management.jmxremote.authenticate=false #是否需要秘钥
-jar test.jar
class data{
private Integer d=0;
public void d1(){
synchronized (d) {
d=1;
System.out.println(d);
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
public void d2() {
d=2;
System.out.println(d);
}
}
public class demo5 {
public static void main(String[] args) {
data d=new data();
new Thread(()->{
d.d1();
},"a").start();
new Thread(()->{
d.d2();
},"b").start();
}
}
H2是Java编写的一款内嵌式数据库,支持内存和文件两种方式存储数据。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
在生产环境中,需要对应用程序的状态进行监控。前面我们已经介绍了使用JMX对Java应用程序包括JVM进行监控,使用JMX需要把一些监控信息以MBean的形式暴露给JMX Server,而Spring Boot已经内置了一个监控功能,它叫Actuator。
使用Actuator非常简单,只需添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
我们使用Spring Boot提供的spring-boot-maven-plugin
打包Spring Boot应用,可以直接获得一个完整的可运行的jar包,把它上传到服务器上再运行就极其方便。
但是这种方式也不是没有缺点。最大的缺点就是包太大了,动不动几十MB,在网速不给力的情况下,上传服务器非常耗时。并且,其中我们引用到的Tomcat、Spring和其他第三方组件,只要版本号不变,这些jar就相当于每次都重复打进去,再重复上传了一遍。
真正经常改动的代码其实是我们自己编写的代码。如果只打包我们自己编写的代码,通常jar包也就几百KB。但是,运行的时候,classpath中没有依赖的jar包,肯定会报错。