당신은 당신이 봄 부팅 당신이 파쇄를 넣어 몇 가지 질문을 인터뷰, 철저한 터치 생각하십니까

당신은 당신이 봄 부팅 당신이 파쇄를 넣어 몇 가지 질문을 인터뷰, 철저한 터치 생각하십니까


ac9359169a6640088b6e3276afb637e0


서문 :

봄 부팅 더 널리 사용으로, 봄 부팅 지식 자바 프로그래머 인터뷰, 전체 통합 솔루션의 SpringBoot 엔터프라이즈 급 개발되고있다, 기업이 현재 프로젝트 개발에 사용, 그것은 매우 일반적인 이제 말했다 자바 프로그래머 될 수있다 SpringBoot를 배울 필요한 시간에, 봄 부팅 이해에 많은 학생들이 그리 심오 종종 여러 만화는 지상에서 얻을 수있는 건 실행이 될 것이다!

예를 들어, 다음 단락 봄 부팅 Q & A :

Q : 당신은 봄 부츠의 가장 큰 장점은 무엇이라고 생각합니까?

A : 봄 부츠의 가장 큰 장점은 "설정보다 관례"입니다. "구성을 통해 협약"소프트웨어 디자인 패러다임, 소프트웨어 개발자의 수를 줄이는 프로그램으로 합의 된 방식으로 개발자, 의사 결정을 내릴 간단한의 이점을 얻을 수 있지만, 유연성을 잃지 않고 필요합니다.

Q : 특정 제품의 "설정보다 관례"의 봄 부팅이 곳에 반영됩니다.

A : 봄 부팅 스타터, 봄 부팅 JPA는 "설정보다 관례"의 반영이다. "규칙 구성을 통해"디자인 아이디어에 의해 설계, 봄 부팅 스타터가있는 정보 자원으로 초기화됩니다 시작시 합의, 봄 부팅 JPA SQL은 유효하지 않은 코드의 큰 숫자를 피하고, 합의 된 방식에 의해 자동으로 생성 물품.

질문 : 봄 부팅 스타터는 어떤 작품?

A : 시작할 때 봄 부팅이 일을 할 것입니다 :

시작시 봄 부팅 스캐닝 프로젝트 항아리 패키지를 따라 구성 후 패키지 JAR 파일에 따라, 자원 / META-INF / spring.factories 파일을 찾을 수있는 스타터 패키지에 의존합니다.

구성 spring.factories 클래스 로딩 자동 구성

조건 @Conditional 주석, 자동 구성 및 콩 주입 스프링 컨텍스트

구성 정보 스프링 부트 초보자를 판독하는데 동의하고 자원의 구성 정보에 따라 초기화된다 스프링 용기에 주입으로 시작할 때, 실제로 부트 스프링을 요약한다. 이 봄 부팅 부팅이 완료되면, 모든 자원 준비, 과정은 해당 자원 콩에 직접 주입 할 수있다.

그것은 세 가지 시리얼 질문과 답변 단지 간단, 그 답을 완료 할 수 있습니다 얼마나 많은 학생들 모른다.

사실, 봄 부팅 10 고주파 봄 부팅 인터뷰 질문을 완료 오늘, 도청 할 수있는 기술적 인 점을 많이 가지고, 인터뷰의 후반 부분에있는 모든 사람을 도울 수 있도록 노력하겠습니다. 물론, 인터뷰 봄 부팅이 너무 충분하지 않습니다 질문에 직면 할 것이다, 그래서 장점은 오 문서의 끝 부분이 있습니다

A, 봄 부팅 자동 방법을 달성하는 것입니다?

주석 봄 부팅 프로젝트를 시작하는 것입니다 : @SpringBootApplication은, 사실, 그것은으로 구성된 세 개의 노트로 구성되어 있습니다 :

@Configuration

@ComponentScan

@EnableAutoConfiguration

상기 클래스 구성 정보는 META-INF / spring.factories로드, 주석 및 @Import AutoConfigurationImportSelector 도입 메모를 통해 입구의 자동 구성을 달성 @EnableAutoConfiguration. 키 데이터가 선박 IOC, 자동 구성 기능에로드에 대한 EnableAutoConfiguration에서 다음 상영!

둘째, 임베디드 서버는 무엇인가? 왜 우리는 임베디드 서버를 사용 하시겠습니까?

어떤 필요에 가상 컴퓨터에서 응용 프로그램을 배포하는 것이 좋습니다.

1 단계 : 자바 설치

2 단계 : 웹 또는 (등 Tomat / Wbesphere / 웹 로직) 응용 프로그램 서버를 설치

3 단계 : 응용 프로그램 전쟁 패키지 배포

우리는 다음 단계를 단순화하려면 어떻게? 의 응용 프로그램의 서버 부분을 만드는 방법에 대해 생각해 봅시다?

당신은이 냉각되지 않고, 직접 상단에 응용 프로그램을 배포 할 수 있습니다 설치 Java 가상 머신의 하나가 필요합니다?

아이디어는 임베디드 서버의 기원이다.

우리가 배포 할 수있는 응용 프로그램을 만들 때, 우리는 서버 (예를 들어, 바람둥이) 임베디드 서버 배포를 넣어 것입니다.

예를 들어, 봄 부팅 응용 프로그램, 당신은 톰캣 임베디드 항아리가 포함 된 응용 프로그램을 구축 할 수 있습니다. 당신은 보통의 Java 응용 프로그램을 실행하는 웹 응용 프로그램으로 실행할 수 있습니다.

우리의 서버 (예를 들어, tomcat.jar) 서버 단위를 포함하는 실행 가능한 바이너리 파일을 포함됩니다.

동시에 셋째, 마이크로 서비스는 어떻게 트랜잭션 아 여러 인터페이스를 호출?

분산 트랜잭션 (transaction)의 사용이 요청의 응답 시간을 증가하기 때문에, 지원 분산 트랜잭션, 당신은 봄 부팅 해결하기 위해 Aatomikos을 통합 사용할 수 있지만, 나는 일반적으로 사용하지 않는 것이 좋습니다, TPS는 시스템에 영향을 미친다. 일반적으로 실제로, 분산 트랜잭션은 보상 메커니즘 메시지를 사용하여 처리됩니다.

넷째, 그들과 거기 캐스 시로의 OAuth를 사이의 관계는 무엇인가? 기업에서 이러한 개념 사이에 차이가, 설계하는 방법이다 권한을 요청합니다.

CA와의 OAuth 구성 요소는 싱글 사인온 해결, 보안에 대한 주된 책임 시로 기관, 그래서 일관성 기능 점수입니다. 그러나 종종 그래서이 CAS + 시로 또는 OAuth를 + 시로의 조합을 사용하기 위해 함께 싱글 사인온 (SSO) 및 액세스 제어를 필요로한다.

토큰은 클라이언트의 로그인 서버 토큰, 서버 메모리에 저장할 수 있습니다 일반적으로 검증 할 것 액세스 할 때마다 발생 일반적으로, 당신은 또한 다른 매체를 넣을 수 있습니다, 여러 프런트 엔드 웹 서버가있는 경우 레디 스 세션 공유가, 할 수 있습니다 대만 부하는 있지만, 로그인 한 사용자의 상태를 유지하기 위해 필요,이 장면이 더 많이 사용합니다.

우리의 회사는 허가 배경 통합 로그인 인증보다 더에 대한 책임의 OAuth, 다른 액세스 권한을 할당 로그인 한 사용자에 대한 책임 시로을 할 수있는 방법으로 OAuth는 + 시로 관리 배경을 사용합니다.

다섯째, 선택하는 방법에 대한 평안한 및 RPC 두 가지의 다양한 서비스 사이의 통신?

在传统的SOA治理中,使用rpc的居多;Spring Cloud默认使用restful进行服务之间的通讯。rpc通讯效率会比restful要高一些,但是对于大多数公司来讲,这点效率影响甚微。我建议使用restful这种方式,易于在不同语言实现的服务之间通讯。

六、怎么设计无状态服务?

对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的服务被称为有状态服务,反之称为无状态服务。

那么这个无状态服务原则并不是说在微服务架构里就不允许存在状态,表达的真实意思是要把有状态的业务服务改变为无状态的计算类服务,那么状态数据也就相应的迁移到对应的“有状态数据服务”中。

场景说明:例如我们以前在本地内存中建立的数据缓存、Session 缓存,到现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变成一个无状态的计算节点。迁移后,就可以做到按需动态伸缩,微服务应用在运行时动态增删节点,就不再需要考虑缓存数据如何同步的问题。

七、Spring Cache 三种常用的缓存注解和意义?

@Cacheable ,用来声明方法是可缓存,将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法,直接从缓存中取值。

@CachePut,使用 @CachePut 标注的方法在执行前,不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。

@CacheEvict,是用来标注在需要清除缓存元素的方法或类上的,当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。

八、Spring Boot 如何设置支持跨域请求?

现代浏览器出于安全的考虑, HTTP 请求时必须遵守同源策略,否则就是跨域的 HTTP 请求,默认情况下是被禁止的,IP(域名)不同、或者端口不同、协议不同(比如 HTTP、HTTPS)都会造成跨域问题。

一般前端的解决方案有:

使用 JSONP 来支持跨域的请求,JSONP 实现跨域请求的原理简单的说,就是动态创建<script>标签,然后利用<script>的 SRC 不受同源策略约束来跨域获取数据。缺点是需要后端配合输出特定的返回信息。

利用反应代理的机制来解决跨域的问题,前端请求的时候先将请求发送到同源地址的后端,通过后端请求转发来避免跨域的访问。

后来 HTML5 支持了 CORS 协议。CORS 是一个 W3C 标准,全称是”跨域资源共享”(Cross-origin resource sharing),允许浏览器向跨源服务器,发出 XMLHttpRequest 请求,从而克服了 AJAX 只能同源使用的限制。它通过服务器增加一个特殊的 Header[Access-Control-Allow-Origin]来告诉客户端跨域的限制,如果浏览器支持 CORS、并且判断 Origin 通过的话,就会允许 XMLHttpRequest 发起跨域请求。

前端使用了 CORS 协议,就需要后端设置支持非同源的请求,Spring Boot 设置支持非同源的请求有两种方式。

第一,配置 CorsFilter。

@Configuration

public class GlobalCorsConfig {

@Bean

public CorsFilter corsFilter() {

CorsConfiguration config = new CorsConfiguration();

config.addAllowedOrigin("");

config.setAllowCredentials(true);

config.addAllowedMethod("");

config.addAllowedHeader("");

config.addExposedHeader("");

 UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
 configSource.registerCorsConfiguration("/**", config); return new CorsFilter(configSource);
}

}

需要配置上述的一段代码。第二种方式稍微简单一些。

第二,在启动类上添加:

public class Application extends WebMvcConfigurerAdapter {

@Override public void addCorsMappings(CorsRegistry registry) { 
 registry.addMapping("/**") 
 .allowCredentials(true) 
 .allowedHeaders("*") 
 .allowedOrigins("*") 
 .allowedMethods("*"); 
}

}

九、JPA 和 Hibernate 有哪些区别?JPA 可以支持动态 SQL 吗?

JPA 本身是一种规范,它的本质是一种 ORM 规范(不是 ORM 框架,因为 JPA 并未提供 ORM 实现,只是制定了规范)因为 JPA 是一种规范,所以,只是提供了一些相关的接口,但是接口并不能直接使用,JPA 底层需要某种 JPA 实现,Hibernate 是 JPA 的一个实现集。

JPA 是根据实体类的注解来创建对应的表和字段,如果需要动态创建表或者字段,需要动态构建对应的实体类,再重新调用Jpa刷新整个 Entity。动态 SQL,mybatis 支持的最好,jpa 也可以支持,但是没有 Mybatis 那么灵活。

十、Spring 、Spring Boot 和 Spring Cloud 的关系?

Spring 最初最核心的两大核心功能 Spring Ioc 和 Spring Aop 成就了 Spring,Spring 在这两大核心的功能上不断的发展,才有了 Spring 事务、Spring Mvc 等一系列伟大的产品,最终成就了 Spring 帝国,到了后期 Spring 几乎可以解决企业开发中的所有问题。

Spring Boot 是在强大的 Spring 帝国生态基础上面发展而来,发明 Spring Boot 不是为了取代 Spring ,是为了让人们更容易的使用 Spring 。

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

Spring Cloud 是为了解决微服务架构中服务治理而提供的一系列功能的开发框架,并且 Spring Cloud 是完全基于 Spring Boot 而开发,Spring Cloud 利用 Spring Boot 特性整合了开源行业中优秀的组件,整体对外提供了一套在微服务架构中服务治理的解决方案。

用一组不太合理的包含关系来表达它们之间的关系。

봄 IOC / AOP> 봄> 봄 부팅> 봄 클라우드

독자 복지 선물

모든 사람이 문서를 공유하고, 얼굴 위의 문서를 공유 알리 개미 황금 드레스와 너무 인터뷰를 포함하여 인터넷 회사를 많이 직면하기에 충분하다 지식의 대부분을 마스터에 대해 동시에 또한 수석 자바 인터뷰 고주파 테스트 사이트 무료가

자바 수석 인터뷰를 마무리 고주파 테스트 사이트

어느 등등 JVM, 잠금, 동시성, 자바 반사, 봄 원리, 마이크로 서비스, 지식 사육사, 데이터베이스, 데이터 구조의 많은 등이 포함됩니다.

플러스 내 학습 건축가 교환기 인터뷰 778,477,315 무료 백과 사전을받을

dfc373eed08349d592bf38128dd0159f


7b465dba53fd465aa12e30a02be35024



추천

출처blog.51cto.com/14456091/2443045