출판 봄 부팅 비계 tyboot의 급속한 발전을 기반으로

tyboot

소개

tyboot 서버 기반 비계 springboot, 서비스 지향 모노머의 급속한 발전이다, 서비스는 마이크로 체계가 다른 프로젝트 tycloud을 볼 수있다 필요 (도 완성)

특징

1. 사업의 기초가되는 개발 프로세스 간소화 
    을 수행합니다. 단일 테이블 쿼리의 경우, SQL을 작성하지 않습니다. 목록, 페이징, 쓰지 않는다. 
    레이어 단지 빈 인터페이스 b.dao 매퍼, 대부분의 기업은 매퍼 (복잡한 보고서 쿼리는 제외) 매퍼의 XML 파일이 필요하지 않는 코드를 작성할 필요가 없습니다. 
    코드를 작성할 필요가 없습니다 서비스 계층에서 하나의 폼 객체의 CRUD를 사용하기위한 일반적인 방법의 큰 숫자를 c.baseService, 목록 및 페이지 매김 쿼리는 단 한 줄의 코드 만 필요합니다. 
    D. 단일 테이블 조작을 옹호. 복잡한 SQL의 사용을 옹호하지 마십시오 복잡한 비즈니스 문제를 해결. 
2. 학습의 비용을 절감 할 수 있습니다. 신규 이민자는 신속하게 사업 개발의 상태를 입력 할 수 있습니다, 빨리, 이민자의 기초가 국경을 건너 시작. 
3. 공통 구성 요소가 통합되어 있습니다. 레디 스, MQ, 이벤트, MongoDB를 등 
4. 일반적인 비즈니스 모델을 얻을 수 있습니다. 상자 밖으로 비즈니스 모델은 크게 프로젝트 개발주기를 줄일 수 있습니다. GM은 비즈니스 모델이 달성 할 계획 
  시스템, 시스템 가상 계좌, 지불 게이트웨이, 동적 양식,보고 시스템, 일반적인 예약 시스템 제공 사용자 정의 전략, 수주 
  내부 정보 기본 데이터 (확인 코드 사전, 위치 정보, 정보는 일반적인 파일에 저장 및 동작 레코드 수) 
타사 시스템은 일반적으로 통합. SMS (알리 큰 물고기), 저장 (일곱 개 소, 알리 OSS), 임금 (마이크로 채널 공용 플랫폼, Alipay의)

기술 스택

1. SpringBoot 2.1.6.RELEASE 
 2. MyBatis로 플러스 3.x를 
 3 MyBatis로 스프링 부팅 스타트 1.2.0 
 5. Kaptcha 2.3.2 
 6. 잭슨 - 데이터 바인딩 2.9.7 
 (7) springfox-swagger2 2.2.2가 
 제 HikariCP 2.7.9

프로젝트 구조

tyboot 
  ├─tyboot-API의 
  │의 ├─tyboot-API-부팅 샘플 프로젝트는, 데이터 사전, 권한 관리, 공통 기본 기능의 다른 프로젝트 달성 
  ├─tyboot 구성 요소를 ------ 구성 요소 
  │의 ├─tyboot - 컴포넌트 - ActiveMQ를 ------ 통합의 ActiveMQ 
  │의 ├─tyboot - 컴포넌트 AMQP ---------- 스프링의 AMQP 쉽게 통합 
  │의 ├─tyboot 구성 요소 캐시 --------- 캐시, 페이징 쿼리를 구현 ZSET 더 구현 및 레디 스 패키지, 위치, 파이프 라인에 대한 분산 잠금 
  │의 ├─tyboot 구성 요소-EMQ가 ----------- 통합 MQTT 서비스 EMQ의 
  │의 ├─tyboot -component 이벤트가 --------- 사용 스프링기구기구 나머지 인터페이스, 이벤트 처리에 기초하여 이벤트를 달성하는 
  │의 ├─tyboot 성분계 몽고를 --------- 집적 몽고 
  │ ├─tyboot- 구성 요소 opendata은 인기 타사 개방형 인터페이스, 암소 일곱 마리, 물고기 알리, 텐센트 메신저, 오로라 푸시와 통합 ------ 
  │의 └─tyboot 구성 요소 - 검증 ---- 매개 변수를 확인 
  ├─tyboot-core-- --------- 핵심 패키지는, 예를 들어 프로젝트는 일반적으로 참조합니다 
  │의 ├─tyboot - 코어 - 인증 --------------- 사용자 인증, 세션 공유 
  │의 ├─tyboot 코어 - 기반 --------- 일반적인 도구 라이브러리, 콩, 파일, 전송 목록 트리 구조, 암호화 및 암호 해독 등을하며 스레드 패키지의 컨텍스트 내에서. . . . . 
  │ ├─tyboot 코어-RDBMS -------------- 통합 MyBatis로, mybatisplus, 단순화 포장 및 아가 ORM 일반 절차 
  │의 └─tyboot 코어-편안한 -------- ---- 인터페이스 패키지, 통합 인터페이스 문서, 균일 한 예외 처리의 편안한 스타일 요격 처리를 요청하고, 데이터 캡슐화, 캡슐화 컨텍스트 반환 
  └─tyboot 프로토 타입 ------ 일반적인 비즈니스 모델, 캡슐화에 대한 특정 비즈니스 시나리오를 달성 
      ├─tyboot - 프로토 타입 계정을 ------ 가상 계좌 시스템 
      ├─tyboot 프로토 타입 주문 -------- 보편적 인 주문 시스템 
      └─tyboot 프로토 타입 무역 -------- 간단한 지불 채널, Alipay의를 달성하기 위해, 마이크로 편지
 	    

디렉토리 규칙 :

예 : 
tyboot-API-권한 ---------------- 디렉토리 항목의 디렉토리 구조 다음은 동의 
  	    org.typroject.api.privilege합니다. 
  	                            컨트롤러 인터페이스 디렉토리를 ------- 
  	                            얼굴. ------------ 비즈니스 계층 
  	                                모델 VO -------- 
  	                                ORM .--------- 데이터 조작 
  	                                    DAO ------ 매퍼 인터페이스 디렉토리 
  	                                    entity-- -po 디렉토리 
  	                                서비스 ------ 비즈니스 클래스를 달성

약속

1.entity BaseEntity 상속 할 필요가 
    일반 필드없이 할 수 없어 해당 데이터 테이블 
 
     (20) 물리적 인 프라이 머리 키 BIGINT SEQUENCE_NBR 
     (32)의 마지막 업데이트 ID의 REC_USER_ID의 VARCHAR를 
     REC_DATE의 날짜 마지막 업데이트 시간 
     
mybatisplus을 사용하여 2,이 샘플 프로젝트 mapper.xml, baseMapper을 소개 할 필요가 없습니다 충분한 방법. 
  복잡한 쿼리를 수행 할 않는 XML 자신이 파일을 도입 할 수 
당신이 코드로 작성됩니다 SQL, XML 또는 도입을 쓰고 싶어하지 않는 한, 정상적인 상황의 DAO 계층 매퍼 인터페이스에서 3 단지 하위 빈 인터페이스입니다.

서비스

1. baseService을 상속
  공용 클래스 LocationInfoService는 BaseService를 확장 <LocationInfoModel, LocationInfo, LocationInfoMapper> 
  {}
단지 반사 통해 메소드 명 획득 방법에 따른 인스턴스 바와 같이 메소드 2.service는 과부하되지. 
3.service 층에만 구현 클래스, 귀찮게하지 않습니다, 이전 인터페이스를 포기했다. 
4. 개체의 단일 형태의 동작은 서비스의 방법을 쓸 필요하지 않을 수 있습니다, 필요 매퍼, 충분히 일반적인 방법을 사용, 소개 없습니다 
  쿼리와 쿼리 예를 들어 단 한 줄의 코드 만의 페이징 목록 :
  • 페이징 :
        공개 페이지는 <DictionarieModel는> queryDictPage (쪽 페이지, 문자열 agencyCode, 
                                                       문자열 buType, 
                                                       문자열 dictAlias는 
                                                       @Condition (Operator.like) 문자열 dictName, 
                                                       문자열 dictCode)는 예외가 발생 
            { 
                "字段排序"this.queryForPage (페이지를 반환 거짓, agencyCode을 , buType, dictAlias, dictName, dictCode); 
            }
      요구와 해당 모델은 매개 변수 쿼리와 같은 이름의 속성 명. 
      PARAMS 파라미터리스트 baseService.queryForPage에게 필요한 방법과 동일한 순서로, 앞의 (queryDictPage) 파라미터 전달 
      자동적으로 파라미터의 이름과 빈 판정 값 기본 사전 분석 방법을 다음 조립 된 상태를 구축하는 데이터베이스 필드 이름으로 변환 장치. 
      참고 @Condition는 조건 연산자를 정의하는 데 사용, 페이지의 운영자가 실현 조건 연산자, 모든 논리와 관계형 쿼리입니다 
      현재 구현하거나 관계하지 않을 계획.         
  • 동일한 매개 변수 페이징와 목록 :( 계약)
      공개 목록은 <DictionarieModel> queryDictList (문자열 agencyCode는, 
                                                     문자열 buType는, 
                                                     문자열 dictAlias이 
                                                      @Condition (Operator.like) 문자열 dictName, 
                                                     문자열 dictCode)이 예외를 throw 
          { 
              거짓 "排序字段"(this.queryForList를 반환 agencyCode, buType, dictAlias, dictName, dictCode); 
          }

제어 장치

1. 통합 반환 값, 모든 인터페이스의 ResponseModel 패키지 통합 반환 값. 
2. 사용자 주석 @TycloudOperation는 액세스 레벨 ApiLevel 인증 제어 인터페이스를 정의하기 위해 사용 needAuth

캐시 소개

1. 단일 Form 객체 캐시, 객체 새로 고침으로 업데이트 할 수있는 목록을 baseService 방법에 통합 된 하나의 테이블을 캐시 나 캐시를 삭제, 당신이 사용할 수있는 방법을 선택하기 위해 메모를 볼 수 있습니다. 
2. 기타 버퍼 장면을 직접 rediTemplate 운영 권장 
및 계산 위치 쿼리; 3.tyboot 구성 요소 캐시 모듈은 페이징 쿼리를 기반으로 레디 스의 ZSET를 제공 레디 스 파이프 라인을 사용하여

코드 생성기를 사용하여

1. 제공된 코드 생성기 mybatisplus를 사용하여 프로젝트 예를 참조.

모범 사례

구성 요소 패키지 포장 및 PW 넥서스 통합 관리를 받는다는을 발표 1. tyboot 코어 및 tyboot 구성 요소 
  및 프로젝트가 다양한 사례를 인용 사업 개발 프로젝트 후, 프로젝트 사업 등의 예를 많이 청소기입니다, 빠른 패키지 당신은 어떤 시간 tyboot 참조 버전으로 업그레이드 할 수 있습니다.

다음 단계

1. 기본 모듈을 개선 
3. 일반적인 비즈니스 모델을 개선 
4. 통합 웹 끝을

추천

출처www.oschina.net/news/108323/tyboot-released