2022年3月17日笔记 spring5新特性

spring5框架新功能(尚硅谷spring5)

–1.整个spring5框架代码基于java8,运行时兼容java9,许多不建议使用的类和方法在代码库中删除;

–2.spring5.0框架自带了通用的日志封装,步骤:
①.导入jar包;
②.创建log4j2.xml配置文件
–3.spring5核心框架容器支持@Nullable注解
(1)@Nullable注解可以使用在方法上面,属性上面,参数上面,表示方法返回值可以为空,属性值可以为空,参数值可以为空;
(2)注解在方法上面,方法返回值可以为空;
(3)注解使用在方法参数里面,方法参数可以为空
(4)使用在属性上,属性可以为空
即不报空指针
–4.spring5核心容器支持函数式风格GenericApplicationContext
new之后调用refresh()、registerBean()
registerBean()三个参数第一个类似于注入时的id,第二个注入的类.Class,第三个是一个函数式接口 () -> new XXX();
类似于多一种注入bean方式?
–5.spring5支持整合JUnit5
Junit4涉及注解:
@RunWith(SpringJunit4ClassRunner.class):单元测试框架
@ContextConfiguration(“classpath:xxx.xml”):加载配置文件
Junit5注解:
@ContextConfiguration同上
@ExtendWith(SpringExtension.class):类似于RunWith

SpringJunitConfig(locations = “classpath:xxx.xml”):效果等同于上面两个注解

其他笔记:计算一个数是否有奇数因子,可以使用n&(n-1)==0来进行判断,题目是计算一个整数是否可以用连续的整数进行表示。
今日到此为止,明日继续努力!!!

补充一个动态代理的知识,防止忘记

Proxy.newProxyInstance(XXX.class.getClassLoader(),interfaces, new InvocationHandler() {
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            return null;
        }
    })

Proxy.newProxyInstance()方法:
里面有三个参数,第一个是类加载器,第二个是要动态代理的接口,是一个Class[]数组,第三个就是InvocationHandler接口
InvocationHandler:实现或者使用匿名内部类方式来重写invoke()方法,用来表示你要代理什么
invoke方法有三个参数:第一个是代理类实例,第二个是方法,第三个就是参数

Method.invoke()就是调用你实现的方法,然后在方法执行前后加上你增强的代码,动态代理就实现了,里面的参数时你的实例和你的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值