Idea远程debug操作步骤(连接服务器)
Idea远程debug操作步骤【SpringBoot项目】
1 创建本地SpringBoot项目
注意,具体业务逻辑可以随意写,此处我为了简介,并没有严格按照规范来
1.1 定义service
@Service public class AddService { public int add(int a, int b){ int sum = a + b; System.out.println(sum); return sum; } }
1.2 定义controller
@RestController public class TestController { @Autowired private AddService addService; @RequestMapping("/test") public String testController(){ int a = -1; int b = 4; System.out.println("addService.add(a, b) = " + addService.add(a, b)); return "test...."; } }
1.3 启动类
@SpringBootApplication //@EnableMBeanExport // 自动注册MBean public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } }
2 创建并配置远程连接
2.1 在本地idea配置远程连接
远程连接地址Host:填写自己服务器的地址即可 端口Port:5005(默认) 命令行参数(默认):-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
2.2 运行maven,将SpringBoot程序打包并上传启动(此处打成war包)
将打包好的war包,上传到linux服务器上
此处我上传到了test目录下
启动项目:
2.3 在本地打好断点(并以debug方式启动)
注意:本地java代码需要与linux服务器上的保持一致【否则debug会失败】
①在本地idea打断点
②以debug方式启动
③当出现Connected to the target VM,…表示与远程连接成功
④运行成功
⑤运行结果:
拓展 :
①war包与jar包区别
jar是普通java项目打包,通常是开发时要引用通用类,达成jar包便于存放管理 war是java web项目打包,web网站完成后,达成war包部署到服务器,目的是为了节省资源,提高效率。
- war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块,jar一般只是包括一些class文件,在声明了Main_class之后可以直接用java命令执行
- war是做好一个web应用后(通常是网站),打成包部署到容器中;jar包通常是开发时要引用通用类,打成包方便存放管理
- war是Sun公司提出的一种Web应用格式,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织;classes目录下包含编译好的Servlet类和Jsp或Servlet所依赖的其他类(如JavaBean)可以达成jar包放到WEB-INF的lib目录下
JAR文件格式以ZIP文件格式为基础。与ZIP不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件 程序,并可被类似于编译期和JVM这样的工具直接使用。
-
JAR文件: 安全性:可以对JAR文件加上数字化签名,用于检测代码是否被篡改过 减少下载时间:共用一个连接 压缩:允许再压缩 传输平台扩展:提供了向Java核心平台添加功能的方法 WAR文件: 就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个war扩展名
②SpringBoot访问静态资源[统一配置]
项目结构:
controller层(配置页面跳转)
@Controller public class TestController { @RequestMapping("/test") public String test(){ return "test.html"; // return "/test.html"; 此处/可不加 } }
yml文件设置静态资源映射路径
spring: mvc: static-path-pattern: /** # HTTP的请求地址 # static-path-pattern: /login/** web: resources: static-locations: classpath:/static/, classpath:/templates/