spring框架mcv的工作原理是什么?

TheDisguiser 2020-05-20 15:15:15 java常见问答 9395

Spring目前是java中最流行的框架之一,它可以整合如MVC等各种框架来方便开发,今天我们就来说说spring中MVC框架的工作原理都有哪些吧。

一、springMVC工作原理

spring框架mcv的工作原理

这里我们通过一个简单例子来详细了解一下

例:

@Controller
public class HelloController
{
    private final Logger logger =
        LogManager.getLogger(HelloController.class);
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello(Model model)
    {
        model.addAttribute("username", "jack");
        logger.debug("HelloController:hello()");
        return "success";
    }
}

@Controller注解:用来声明spring的控制器,本身与@Component没有区别,只不过是用来表示控制器的身份而已,让开发者看起来更清晰。

@RequestMapping注解:用来声明访问路径与处理方法/类的映射关系

通过以上这个例子,我们可以看到springMVC的工作流程有七步,分别是:

1).当我们输入“/hello”时,请求的第一站是DispatcherServlet这个前端控制器,它的任务是根据处理器映射来选择合适的controller。

2).controller中我们已经将路径与处理方法的对应关系,通过@RequestMapping注册到了上下文中的处理器

3).通过查询处理器映射,DispatcherServlet会将请求派发给HelloController.hello(),并等候处理结果

4).hello方法处理完成后,会将模型数据打包(model),并标识出要展示的视图逻辑名称(“success”)

5).前端控制器DispatcherServlet通过我们配置的视图解析器InternalResourceViewResolver,给视图名添加对应的前缀和后缀,最终得到完整的视图路径(”/success.jsp“)。

6).结合处理请求得到的模型数据model和动态页面”/success.jsp“,渲染输出好视图。

7).最终将这个视图页面以html格式返回给前端。

二、使用log4j2记录日志

在SpringMVC中使用log4j2记录日志也是非常方便的,不过与mybatis不同的是,除开引入Log4j的类库外,还需要额外引入Log4j JCL的库:

Pom.xml

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.1</version>
</dependency> <
dependency >
    <groupId>org.apache.logging.log4j</groupId> <
    artifactId > log4j - jcl < /artifactId> <
version > 2.11 .1 < /version>  <
    /dependency>

Log4J.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%-5p [%C{2}] (%F:%L) - %m%n" />
</Console>
</Appenders>
<Loggers>
<!-- <Logger name="org.springframework.beans.factory" level="DEBUG" /> -->
<Root level="debug">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>

以上就是关于springMVC原理的一些介绍了,想了解更多java入门知识就快来关注我们吧。

推荐阅读:

springmvc常用注解有哪些?常用注解介绍

springmvc流程,工作流程介绍

springmvc的工作原理是怎样的?原理介绍