SpringBoot自动配置的原理及实现SpringBoot之@Import注解正确使用方式

SpringBoot自动配置的原理及实现SpringBoot之@Import注解正确使用方式,第1张

>

Spring Boot充分利用了JavaConfig的配置模式以及“约定优于配置”的理念,能够极大的简化基于Spring MVC的Web应用和REST服务开发。 Spring 4倡导微服务的架构,针对这一理念,近来在微博上也有一些有价值的讨论,如这里和这里。微服务架构倡导将功能拆分到离散的服务中,独立地进行部署,Spring Boot能够很方便地将应用打包成独立可运行的JAR包,因此在开发模式上很契合这一理念。目前,Spring Boot依然是050的里程碑版本,因此相关的文档尚不完善,本文将会以一个简单的样例来介绍基于这个项目的开发过程。 要Spring Boot进行功能开发,需要使用Gradle或者Maven作为构建工具。在本例中,我们会使用Eclipse和Maven插件进行开发。要使用Spring Boot

AbstractAccessDecisionManager的子类使用了decide这个方法,你需要看AbstractAccessDecisionManager里面对于voter的结果如何处理的

比如UnanimousBasedclass

```

for (ConfigAttribute attribute : attributes) {

singleAttributeListset(0, attribute);

for (AccessDecisionVoter voter : getDecisionVoters()) {

int result = votervote(authentication, object, singleAttributeList);

if (loggerisDebugEnabled()) {

loggerdebug("Voter: " + voter + ", returned: " + result);

}

switch (result) {

case AccessDecisionVoterACCESS_GRANTED:

grant++;

break;

case AccessDecisionVoterACCESS_DENIED:

throw new AccessDeniedException(messagesgetMessage(

"AbstractAccessDecisionManageraccessDenied",

"Access is denied"));

default:

abstain++;

break;

}

}

}

// To get this far, there were no deny votes

if (grant > 0) {

return;

}

```

主要看这边处理的

url = localhost:8080/userusername=zhangsan&age=18

众所周知 springboot 默认是 tomcat 容器 (SERVLET web类型)。我们要分析一个请求过来所经历的过程,自然要从前端总控制器(DispatchServlet)开始说起。按照 Servlet 规范,所有请求都会被tomcat容器交到 dispatchServlet 的 doService 方法中去处理。跟到这个方法中去,我们发现其中设置了变量进 request 对象,然后执行了 doDispatch 方法,这个方法才是真正实现请求处理的核心。

到此,已经可以找到 具体的请求映射了

下面分析 参数的封装原理

springboot 参数封装原理 - (jianshucom)

在程序的主入口中定义dispatchRegistration

<span style="font-size:18px;">package comlzl;

import orgspringframeworkbootSpringApplication;

import orgspringframeworkbootautoconfigureSpringBootApplication;

import orgspringframeworkbootwebservletServletComponentScan;

import orgspringframeworkbootwebservletServletRegistrationBean;

import orgspringframeworkcontextannotationBean;

import orgspringframeworkwebservletDispatcherServlet;

import comlzlservletMyServlet;

@SpringBootApplication

public class SpringBootDemoApplication {

public static void main(String[] args) {

SpringApplicationrun(SpringBootDemoApplicationclass, args);

}

@Bean

public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {

ServletRegistrationBean reg = new ServletRegistrationBean(dispatcherServlet);

reggetUrlMappings()clear();

regaddUrlMappings("html");

regaddUrlMappings("do");

return reg;

}

}</span>

源(origin)就是协议、域名和端口号。URL是由协议、域名、端口和路径组成。如果两个url的协议、域名和端口全部相同,则表示同源;否则就是跨域。

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

同源策略又分为以下两种:

DOM同源策略:禁止对不同源页面DOM 进行 *** 作。这里主要场景是iframe跨域的情况,不同域名的iframe是限制互相访问的。

XML>

        为了保证浏览器的安全,不同源的客户端脚本在没有明确授权的情况下, 不能读写对方资源这叫做同源, 同源策略是浏览器的安全基石

        如果一个请求地址里面协议, 域名和端口号都相同,就属于同源

        在同源策略下,非同源的网站之间发送AJAX请求,如有需要,可通过降域或其他技术实现

     cors(Crosss-OriginResource Sharing) ,CORS可以在不破坏既有规则的情况下,通过后端服务器实现

CORS接口, 从而实现跨域通行,CORS将请求分为两类:简单请求和非简单请求,分别对跨域通信提供了支持

       21: 简单请求

           在CROS之前, 发送>

以上就是关于SpringBoot自动配置的原理及实现/SpringBoot之@Import注解正确使用方式全部的内容,包括:SpringBoot自动配置的原理及实现/SpringBoot之@Import注解正确使用方式、SpringBoot 01 简单的爬取磁力搜索、使用springboot做的一个服务通过url地址嵌到一个系统里,app有个发送邮件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9709768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存