Spring生命周期 Constructor > @PostConstruct > InitializingBean > init-method Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下三种: (1) 通过实现 InitializingBean/DisposableBean 接口来定制初…

2023年 3月 27日 0条评论 19点热度 0人点赞 阅读全文

ClassPathScanningCandidateComponentProvider是Spring提供的工具,可以按自定义的类型,查找classpath下符合要求的class文件。 // 需要扫描的路径 private static final String scanPackage = "com.dh.node"; /** * 启动就开始扫描到map */ @PostConstruct public void init() { discoverComponents(); } @Override…

2023年 3月 27日 0条评论 13点热度 0人点赞 阅读全文

一、使用reflections @Service public class TFactory { @PostConstruct public void init() throws IllegalAccessException, InstantiationException { //获取该路径下所有类 Reflections reflections = new Reflections("com.test"); //获取继承了ISuperClass的所有类 Set<Class<? ext…

2023年 3月 27日 0条评论 19点热度 0人点赞 阅读全文

通过一个路径去反射获取相应内容时,如果通过getSubTypesOf去获取时扫描的路径一定要包裹你想扫描出来的父类以及子类路径,不然只扫描子类所在路径是获取不到子类与父类的关系,从而根据父类取的时候获取不到对应想要的子类

2023年 3月 27日 0条评论 12点热度 0人点赞 阅读全文

在实际项目中我们经常会有 List 转 Map 操作,在过去(JAVA8以前)我们可能使用的是 for 循环遍历的方式,这种方式就不做过多赘述。这里主要讲解使用 Collectors.toMap 方式及使用过程需注意的地方,避免踩坑。 先看看 Collectors.toMap 方法,有三个重载方法: //方法一:2个参数 public static <T, K, U> Collector<T, ?, Map<K,U>> toMap(Function<? super T, ?…

2023年 3月 26日 0条评论 27点热度 0人点赞 阅读全文

最近对接第三方呼叫系统,第三方SDK的所有方法里都有异常抛出,因为用到了lambda,所以异常处理还是很必要的。 本文主要用到了四种解决方案: 直接代码块处理 自定义函数式接口,warp静态方法 通过Either 类型包装 通过Pair 类型进行再次包装 方法一: 直接代码块处理: /** * 上线 * @param schoolId 学校id * @param cno 座席工号,4-6 位数字 * @param bindType 电话类型,1:电话;2:分机 * @param bindTel 绑定电话 * @re…

2023年 3月 26日 0条评论 18点热度 0人点赞 阅读全文

java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,lambda表达式可以让我们的代码更加简介,业务逻辑更加清晰,但是在lambda表达式中使用的Functional Interface并没有很好的处理异常,因为JDK提供的这些Functional Interface通常都是没有抛出异常的,这意味着需要我们自己手动来处理异常。 因为异常分为Unchecked Exception和checked Exception,我们分别来讨论。 处理Unchecked Exception …

2023年 3月 26日 0条评论 15点热度 0人点赞 阅读全文

Lambda的原理 Java 8支持动态语言,看到很酷的Lambda表达式,对一直以静态类型语言自居的Java,让人看到了Java虚拟机可以支持动态语言的目标。 Lambda的案例 import java.util.function.Consumer; public class Lambda { public static void main(String[] args) { Consumer<String> c = s -> System.out.println(s); c.accept(&qu…

2023年 3月 26日 0条评论 20点热度 0人点赞 阅读全文

匿名内部类的一个问题是:当一个匿名内部类的实现非常简单,比如说接口只有一个抽象函数,那么匿名内部类的语法有点笨拙且不清晰。我们经常会有传递一个函数作为参数给另一个函数的实际需求,比如当点击一个按钮时,我们需要给按钮对象设置按钮响应函数。lambda表达式就可以把函数当做函数的参数,(函数)当做数据(形参),这种特性满足上述需求。当要实现只有一个抽象函数的接口时,使用lambda表达式能够更灵活。 使用Lambda表达式的一个用例 假设你正在创建一个社交网络应用。你现在要开发一个可以让管理员对用户做各种操作的功能,比…

2023年 3月 26日 0条评论 14点热度 0人点赞 阅读全文

写在前边 聊到Java8新特性,我们第一反应想到的肯定是Lambda表达式和函数式接口的出现。要说ta到底有没有在一定程度上“优化”了的简洁性呢?抑或是ta在一定程度上给程序员增加了阅读和debug的难度,让不少程序员头疼。这期来接着“聊聊Java”,新特性篇之又爱又恨的Lambda。 Lambda表达式 实质属于函数式编程的概念,可返回一个接口的实现 线程中的应用 传统方式 创建一个一次性的类 //一次性的类,用在new Thread中充当Runnable对的实现类 class runnable implemen…

2023年 3月 26日 0条评论 17点热度 0人点赞 阅读全文
123457