IDEA一键删除所有代码注释方法

很简单,Ctrl+R使用正则替换,不仅IDEA,notepad++之类支持正则表达式的编辑器都可以。搜索如下正则替换为空串即可。替换 /** .. */与//注释(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*)只替换多行注释(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)

命令行/IDEA根据wsdl生成WebService客户端以及接口调用

首先需配置wsdl环境1、在官网下载环境包或直接在网盘下载:https://hik.lanzous.com/iKZ0tgloirg2、解压后配置环境变量(以你解压实际路径为准):在CLASSPATH中添加 D:\apache-cxf-3.3.7\lib;新建CXF_HOME D:\apache-cxf-3.3.7在PATH中添加 D:\apache-cxf-3.3.7\bin3、cmd中输入wsdl2java -v返回版本号说明环境配置成功命令行生成webservice客户端wsdl2java -d D:\webserviceClient -p top.cway.testWebServiceClient http://cway.top?WSDL-d后为生成代码保持路径,-p为代码保存的包路径,最后的地址为webservice服务端地址,一般要加?WSDL获取其接口信息。IDEA生成webService客户端首先鼠标选择项目中的一个包,然后点击顶部菜单栏 Tools->WebServices->Generate Java Code From Wsdl  ,然后输入服务端地址,选cxf生成即可优点:idea生成的优点是其自动生成了直接可供测试的client代码,而命令行生成的需要自己写测试类调用接口。调用示例与问题示例接口(根据手机号码查询归属地的)http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl大家可根据该接口生成代码进行测试。这里,IDEA生成了get/post/soap三种形式的client,经本地测试只有soap的可使用,可见IDEA还是很方便的。当参数为一般类型还好办,但是参数为Holder怎么传值呢?例如@WebParam(mode = WebParam.Mode.INOUT, name = "MyData", targetNamespace = "")javax.xml.ws.Holder<TableOfData> myData调用时填充参数示例//创建holderHolder<TableOfData> myData = new Holder<TableOfData>();//创建以上泛型对象TableOfData tableOfData = new TableOfData();//定义holder值为上述对象myData.value = tableOfData;//TableOfData对象中有个list属性,用item进行赋值List zlist = new ArrayList<>();tableOfData.item = zlist;

注解@Builder和@Accessors 简化get/set方法

使用前的准备@Builder和@Accessors都是lombok下的注解,都可以用于简化get/set方法。要使用Lombok,需要添加插件并导入依赖。插件直接在IDEA的settings-Plugins中搜索lombok,下载后重启IDEA即可,依赖如下:<dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <version>1.18.10</version></dependency>@Builder注解@Builder 注解可以更方便的在对象初始化的时候对属性进行赋值,不用大量的调用 setter 方法,代码更易于阅读与编写。@Data@Builder@NoArgsConstructorpublic class User {    String name;    String address;   public static void main(String[] args) {        //builder方式赋值。取值仍然要通过get。        User user=new User().builder().name("teacher").address("河南省").build();        //set方式赋值        user.setName("student");        user.setAddress("北京市");    }}@Accessors注解@Accessors 有3个值:flunt,chain,prefix;fluent ,Boolean类型,默认false,且flunt为true,则chain默认为true。如果为true,name的getter就是 name(),setter方法就是name(T newValue)。chain ,Boolean类型,默认false,且flunt为true,则chain默认为true。如果为true,产生的setter返回的this即对象实例本身而不是void,因此可以直接再使用set方法或者调用其他函数。prefix ,一系列string类型。如果显示,属性必须加上某些定义的前缀。前缀被提取出来后才是属性名。字符都是字母,紧接着前缀后的字符一定不能是小写字母。例如,pepper对前缀p不是相等匹配,而跟pEpper是匹配的(也就意味着属性的基本名字是epper)。注意:@Accessors注解可以在类和属性上使用。如果@Accessors注解在一个属性上,再对那个属性的类的@Accessors注解就会被忽略。@Data@Accessors(fluent = true)    @NoArgsConstructorpublic class User {    String name;    String Address;    public static void main(String[] args) {        //accesstor flunt=true,此时默认chain=true        User user=new User().name("teacher").Address("河北"); //赋值,类似set方法        String address=user.Address();                       //取值,类似get方法    }}@Data@Accessors(chain = true)@NoArgsConstructorpublic class User {    String name;    String Address;    public static void main(String[] args) {        //accesstor  chain=true,未设置flunt,默认flunt=false        User user=new User().setName("teacher").setAddress("河北"); //赋值,类似set方法        String address=user.getAddress();                       //取值,类似get方法    }}

Springmvc 同一个Mapping中 映射多个地址

其实很简单,只需在花括号中用逗号隔开即可@GetMapping(value = {"/get/{list}/{a}/{b}", "/get/{list}/{a}", "/get/{list}"})public void getProList(@PathVariable String list, @PathVariable(required = false) String a, @PathVariable(required = false) String b) { ...}

Springboot启动时报错 错误: 找不到或无法加载主类com.xxx.Application

解决方法:在项目目录输入cmd进入命令行执行清除命令即可Mavenmaven cleanGradlegradle clean

java.lang.UnsupportedOperationException解决方法

转自https://blog.csdn.net/Tracycater/article/details/77592472?locationNum=2&fps=1做开发一定要注重细节。在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。 代码块:public class ListTest {    public static void main(String[] args) {        String[] array = {"1","2","3","4","5"};        List<String> list = Arrays.asList(array);        list.add("6");    }}执行结果:Exception in thread "main" java.lang.UnsupportedOperationException    at java.util.AbstractList.add(AbstractList.java:148)    at java.util.AbstractList.add(AbstractList.java:108)    at com.atguigu.test.ListTest.main(ListTest.java:11)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)发生问题的原因如下: 调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常。解决方法如下:public class ListTest {    public static void main(String[] args) {        String[] array = {"1","2","3","4","5"};        List<String> list = Arrays.asList(array);        List arrList = new ArrayList(list);        arrList.add("6");    }}

idea历史版本下载

idea官方历史版本下载:https://www.jetbrains.com/idea/download/other.html

开源中国历年最受欢迎国产软件评选Top

分享的目的,方便了解咱国产框架、软件最新动态,可了解现在流行哪些工具/技术栈等。以下是2016年开始历年开源中国评选出的最受欢迎国产开源软件页面:https://www.oschina.net/project/top_cn_2016https://www.oschina.net/project/top_cn_2017https://www.oschina.net/project/top_cn_2018https://www.oschina.net/project/top_cn_2019https://www.oschina.net/project/top_cn_2020

bat同时打开/执行多个bat/cmd批处理文件

很多时候,在用Windows工作学习的时候,要启动redis、tomcat、网关之类的,一次次点击startup.bat批处理文件比较麻烦,写个批处理文件同时打开它们即可,如下:@echo offstart /D "D:\soft\Redis-x64-3.2.100" startup.batstart /D "D:\soft\gateway\" startup.bat编辑好后改文本文件后缀为bat或cmd即可

JDK9中文API文档下载

中文文档,请解压后查看使用说明  1 下载完成后不要在压缩包内运行软件直接使用,先解压;  2 软件同时支持32位64位运行环境;  3 如果软件无法正常打开,请右键使用管理员模式运行。下载:https://lanzous.com/izwTmde2x6d