写点什么

Spring5 框架新功能(Webflux)

  • 2021 年 11 月 11 日
  • 本文字数:1761 字

    阅读完需:约 6 分钟

点击直接跳转



第二步 创建 log4j2.xml 配置文件


<?xml version="1.0" encoding="UTF-8"?>


<configuration status="INFO">


<appenders>


<console name="Console" target="SYSTEM_OUT">


<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>


</console>


</appenders>


<loggers>


<root level="info">


<appender-ref ref="Console"/>


</root>


</loggers>


</configuration>


也可以通过手动配置还进行编写


package TestAOP;


import org.slf4j.Logger;


import org.slf4j.LoggerFactory;


public class UserLog {


private static final Logger log= LoggerFactory.getLogger(UserLog.class);


public static void main(String[] args){


log.info("hello log4j2");


log.warn("hello log4j2");


}


}


3、Spring5 框架核心容器支持 @Nullable 注解


(1)@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以


为空,参数值可以为空


(2)注解用在方法上面,方法返回值可以为空


在测试类上 ApplicationContext 的类中,源码如下:


//


// Source code recreated from a .class file by IntelliJ IDEA


// (powered by FernFlower decompiler)


//


package org.springframework.context;


import org.springframework.beans.factory.HierarchicalBeanFactory;


import org.springframework.beans.factory.ListableBeanFactory;


import org.springframework.beans.factory.config.AutowireCapableBeanFactory;


import org.springframework.core.env.EnvironmentCapable;


import org.springframework.core.io.support.ResourcePatternResolver;


import org.springframework.lang.Nullable;


public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {


@Nullable


String getId();


String getApplicationName();


String getDisplayName();


long getStartupDate();


@Nullable


ApplicationContext getParent();


AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;


}


(3)注解使用在方法参数里面,方法参数可以为空


public <T> void registerBean(@Nullable String beanName, Class<T> beanClass, @Nullable Supplier<T> supplier, BeanDefinitionCustomizer... customizers) {


this.reader.registerBean(beanClass, beanName, supplier, customizers);


}


(4)注解使用在属性上面,属性值可以为空


@Nullable


private String bookName;


4、Spring5 核心容器支持函数式风格


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


GenericApplicationContext




测试类代码如下:


//函数式创建对象,交给 spring 进行管理


@Test


public void testGenericApplicationContext(){


//创建一个 GenericApplicationContext 对象


GenericApplicationContext context=new GenericApplicationContext();


//调用 context 的方法对象进行注册


context.refresh();


context.registerBean("hello",User.class,()->new User());


// context.getBean("user");


User user = (User)context.getBean("hello");


System.out.println(user);


}


5、Spring5 支持整合 JUnit5




(1)整合 JUnit4


第一步 引入 Spring 相关针对测试依赖。



第二步 创建测试类,使用注解方式完成


@RunWith(SpringJUnit4ClassRunner.class) //单元测试框架


@ContextConfiguration("classpath:bean1.xml") //加载配置文件


public class JTest4 {


@Autowired


private UserService userService;


@Test


public void test1() {


userService.accountMoney();


} }


(2)Spring5 整合 JUnit5


第一步 引入 JUnit5 的 jar 包



@ExtendWith(SpringExtension.class)


@ContextConfiguration("classpath:bean1.xml")


public class JTest5 {


@Autowired


private UserService userService;


@Test


public void test1() {


userService.accountMoney();


} }


(3)使用一个复合注解替代上面两个注解完成整合


@SpringJUnitConfig(locations = "classpath:bean1.xml")


public class JTest5 {


@Autowired


private UserService userService;


@Test


public void test1() {


userService.accountMoney();


} }

评论

发布
暂无评论
Spring5 框架新功能(Webflux)