Spring目前是java中最流行的框架之一,它可以整合如MVC等各种框架来方便开发,今天我们就来说说spring中MVC框架的工作原理都有哪些吧。
一、springMVC工作原理
这里我们通过一个简单例子来详细了解一下
例:
@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入门知识就快来关注我们吧。
推荐阅读: