https://segmentfault.com/n/1330000009887617
역사와 기술 개발의 맥락
마이크로 서비스는 SOA의 작은 강도
REST : JSON, XML, HTTP
핫 스팟 : 핫 이슈에 대한로드 밸런싱 솔루션
구성 : 현지 할 수 있습니다 배포 할 수 있습니다, 키는 구성 파일의 내용을 변경 한 후 응답을 모니터하는 것입니다
보안 : 프런트 엔드 보안 XSS, 인증, 권한 부여, 싱글 사인온
봄 부트 내용
스프링 framwework 디자인 패턴
gof23
수동 복구
소스 코드를 읽는 방법 :
일반 인터페이스는 입구
인터페이스 행동의 View 구현
키 코드를 찾아 상호 세부 사항을 무시
아이디어 전체 텍스트 검색 :
CTRL + H
JSP로 자원로드 :
게임
Serverlet 호출 체인
Q & A :
메모리 복구, 자바 GC의 수동 복구
중지
정적 및 동적 박리
请求
资源定位(URI)
请求协议(Protocol)
请求方法(Method)
请求参数(Parameter)
请求主体(Body)
请求头(Header)
Cookie
响应
响应头(Header)
响应主体(Body)
标准优化技术
资源变化
相应头:Last-Modified(初次访问没有缓存得到的响应数据)(第一次响应)服务器告诉浏览器资源最近的修改时间
请求头:If-Modified-Since(第二次请求带上,如果服务器返回304表示资源没有变化,浏览器就会使用本地缓存数据)
资源缓存
相应头:ETag(初次访问没有缓存得到的响应数据,用ETag标记)
请求头:If-None-Match(第二次请求带上该资源ETag标记,如果服务器返回304表示资源没有变化,浏览器就会使用本地缓存数据)
봄 解析 서블릿, JSP
서류 :
자바 클래스를 구성하여 해당 매개 변수를 찾을 수
구성 클래스 노트 :
주변의 봄
프로 시저를 호출합니다 :
request incoming ->
javax.servlet.http.HttpServlet#service-->
org.springframework.web.servlet.DispatcherServlet#doDispatch-->
ik.starriver.log.controller.EventController#getPage
봄 휴식
Spring Boot REST
核心接口
定义相关
@Controller
@RestController
映射相关
@RequestMapping
@PathVariable
请求相关
@RequestParam
@RequestHeader
@CookieValue
RequestEntity
响应相关
@ResponseBody
ResponseEntity
이 소비 = MediaType.APPLICATION_XML_VALUE가 정확히 일치 // 수락 요청 헤더의 콘텐츠가
생성 = MediaType.APPLICATION_XML_VALUE) // 해당 타입의 각각의 데이터로 파싱
@RestController
public class XMLRestController {
@GetMapping(path = "/xml/user",
consumes = MediaType.APPLICATION_XML_VALUE, //精确匹配request header的Accept内容
produces = MediaType.APPLICATION_XML_VALUE) //相应数据解析成相应类型
public User user() {
User user = new User();
user.setName("XML");
user.setAge(30);
return user;
}
}
나머지 문서 생성
HATEOAS
서비스 인터페이스 API를 정보의 모델을 제공 :
HttpServlet.service 다른 요구에 따른 처리 방법 :
봄 부팅에 서블릿
구성 요소 : 스캔 \ 등록 HttpServlet을
필터 : 스캔 \ 등록 필터
청취자 : 스캔 \ 등록 XXXXListener
(데이터 소스와 예를 들어) 빈 컨텍스트를 가져옵니다 :
@SpringBootApplication
@EnableTransactionManagement
@EnableAsync
@EnableJpaRepositories(basePackages = {"ik.starriver.msgcenter"})
//@MapperScan("ik.starriver.msgcenter.mappers")
//@ComponentScan(basePackages = {"ik.starriver.msgcenter"})
public class MsgCenterApplication {
private static final Logger logger = LoggerFactory.getLogger(MsgCenterApplication.class);
public static void main(String[] args) throws NamingException, SQLException {
SpringApplication application = new SpringApplication();
ConfigurableApplicationContext applicationContext = application.run(MsgCenterApplication.class, args);
BasicDataSource dataSource = (BasicDataSource) applicationContext.getBean("dataSource");
Statement statement = dataSource.getConnection().createStatement();
ResultSet resultSet = statement.executeQuery("SHOW DATABASES;");
while(resultSet.next()){
String result = resultSet.getString(1);
logger.debug(result);
}
logger.debug("started");
}
봄 부팅 포함 된 Tomcat 웹 컨테이너
보기 포트는 프로세스를 소속 :
lsof를 -i : 8000
출처 :
ServletWebServerFactoryCustomizer.customize读取配置文件的Servlet、server、Tomcat相关属性设置,配置文件内容例如:
server:
servlet:
contextPath: /shen
port: 9000
기본 int 형과 기본 값을 가지고, 객체에 null 값 유형 정수를 가지고
개발 기술
검색어 자동 속성
경로 1 개 찾기 창에서 열기 (Ctrl 키 + h를)
이
삼
4
BodyMap
FailedBodyMap
우편 집배원:
통해 http : // localhost : 8080 / JDBC / 사용자 / 1 /
통해 http : // localhost : 8080 / JDBC / 사용자 /
통해 http : // localhost : 8080 / JDBC / 사용자 /
https://search.maven.org/classic/
카테고리별로 이름 검색 :
HTML
JSON
XML
HATEOAS
위해 RESTClient
가져 오기 제대로 치즈 라이브러리 :
org.apache.commons.dbcp2.BasicDataSource
기준 영상 41분
application.properties에서 DBCP 관련 구성 항목을 추가하는 방법
기준 영상 43분
단일 연결
DBCP 방법
반환 된 객체 열을 알고, 분석 데이터 없음
MVC 문구 :
service\UserService.java:
domain\UserServiceImpl.java:
controller\JDBCController.java:
단어 방식 메모리 API를
추천 도서 :
봄 클라우드 서비스 전투 마이크로 자이 용인 차오 와
소스 코드를 공부하는 방법 (예를 들어 MyBatis로과를, API 인터페이스는 XML 구성 정보를 얻을 수 org.apache.ibatis.session.Configuration 방법을 분석하는) :
XML 설정
코드 읽기 구성 속성 및 설정
당신은 설정의 세부 사항을 잊어 버린 경우, 당신은 비디오 및 해당 코스를 볼 수 있습니다.
JSON 유형 VARCHAR로 변환
서명의 여부 반사를 결정 invocation.proceed
MyBatis로 발전기
자원 주소 : HTTP : //www.mybatis.org/generator/index.html
MyBatis로-config.xml에
여러 가지 방법으로 XML 구성 파일의 MyBatis를 사용하여 :
한 손으로는 맵 파일을 생성 UserMapper2.xml
2 MBG는 맵 파일 UserCopy1Mapper.xml을 생성
3 주석
4 선발 방법 :
mybatis-spring-boot-starter ----> MybatisAutoConfiguration
/jdbc/mybatis/user/{id}/
/jdbc/mybatis/generator/user/{id}/
/jdbc/mybatis/annotation/mapper/user/{id}/
/jdbc/mybatis/starter/mapper/user/{id}/
달성 매퍼 :
XML : 일반적으로 사용되는, 자동으로 매핑 SQL MBG에 의한 결과 집합을 생성 할 수 있습니다
주석 : 수동 코딩, 그것은 단지 패키지를 클래스 패스합니다 정의되어 편리하게 조회
엔티티 도메인과의 차이 사이 :
도메인 풍부한 domian 두 종류의 상태와 작업 (예를 들어, 업데이트), 도메인 일반적으로 고갈 POJO, 자바 빈즈가 포함되어 있습니다
엔티티 ID = + 자바빈
더 많은 도메인 로직 설명에 대해 우려, 법인은 더 많은 관심을 지속
JPA 질문 :
스위치는, 보조 캐시를 조작 할 수 있습니다 작동 할 수 없습니다 캐시하지만
음의 잠금 : 잠금 데이터베이스
낙관적 잠금 : 버전을 추가
모든 콩 속성 구성 정보는 정보에 의해 구성 할 빈 클래스에서 찾을 수 있습니다보기