欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring5之新功能

程序员文章站 2024-03-23 17:54:58
...

Spring5新功能

1.基于java8 并支持jdk9

2.使用了log4j2

1.日志:

只要引入jar包,并在文件路径中 即src中协商log4j2.xml 并进行配置就可以了

log的级别限制

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,可以看到log4j2内部各种详细输出-->
<configuration status="INFO">
    <!--先定义所有的appender-->
    <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>
    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
    <!--root:用于指定项目的根日志,如果没有单独指定Logger,则会使用root作为默认的日志输出-->
    <loggers>
        <root level="info">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

[email protected]

表示后面跟的东西 的值可以为空

主要用在方法,方法参数 ,属性上,表示方法返回值可以为空,方法参数可以为空,属性可以为空

3.函数式编程

@Test
public void generaticBean(){

    GenericApplicationContext context =new GenericApplicationContext();

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

    User user = (User)context.getBean("user1");
    System.out.println(user);


}

直接使用new 注册,并放在spring中进行管理

特别注释:

1。spring里面new对象的话是管理不了的,必须注册成为bean, 才能进行管理

4.整合Junit4

引入test包

然后

@RunWith(SpringJUnit4ClassRunner.class) //单元测试框架
@ContextConfiguration("classpath:bean1.xml") //加载配置文件
public class JTest4 {

    @Autowired
    private UserService userService;

    @Test
    public void test1() {
        userService.accountMoney();
    }
}

注解显示的就是字面意思

Junit5的整合

@SpringJUnitConfig(locations = "classpath:bean1.xml")
public class JTest5 {

    @Autowired
    private UserService userService;

    @Test
    public void test1() {
        userService.accountMoney();
    }
}

5.Webflux

1.介绍

springWebflux是spring5新添加的模块,用于web开发,功能和springMVC类似的,webflux使用的是当前一个流行的响应式编程出现的框架

2。传统的web架构如springMVC是,基于Servlet容器,而webflux是一种异步非阻塞的框架。而异步非阻塞要在servlet3.1后才支持。其核心是基于

3.常识性问题

同步: 发了请求后,等待回应才去做其他事情。

异步:发了请求后,先去做其他事情,等回应了才来继续完成

阻塞:服务器端,等手头的事情做好,再去处理请求。

非阻塞:马上处理请求,然后再去做刚才没做完的事情

webflux的特点

1.非阻塞:在有限的资源下,提高系统的吞吐量和伸缩性,以reactor为基础实现响应式编程

2.函数式编程:spring5基于java8 ,用函数式编程方式实现路由请求

与springMVC(虽然还没学,等以后学了再回头看看)

第一 两个框架都可以使用注解方式,都运行在tomcat容器里

第二 springMVC命令式编程,webflux是异步响应式编程

6.响应式编程

spring5之新功能

观察者模式(响应式):

public class observer extends Observable {

    public static void main(String[] args) {
        observer observer =new observer();
        System.out.println(observer);
//        o应该是observer的意思
        observer.addObserver((o,arg)->{
            System.out.println("发生变化"+arg+o);
        });
        observer.setChanged();
        observer.notifyObservers("你好");




    }

//    @Override
//    public String toString() {
//        return "observer{}";
//    }
}

3.响应式编程(Reactor实现)

spring5之新功能

至于webflux的实现,现阶段我还没有必要去弄。
以后有需求的时候再去学习

相关标签: spring学习