Java/Spring Development는 항상 어리석은 대표로 간주되어 프로젝트 프로토 타입과 골격을 신속하게 생성 할 수 없습니다. 따라서 Spring은 Spring Roo Project를 시작하여 프로젝트 프로토 타입을 신속하게 생성하는 데 도움이되었습니다. 이 기사는 Spring Roo의 공식 문서를 기반으로합니다. 영어에 익숙하다면 내용이 풍부한 원본 문서를 직접 읽을 수 있습니다.
설치하다
명령 줄 도구를 설치하십시오
Spring Roo는 명령 줄 도구 세트입니다. Eclipse/STS를 사용하는 경우 Eclipse에 해당하는 플러그인을 사용할 수도 있습니다.
먼저 명령 줄 도구를 다운로드하십시오. 다운로드 페이지로 이동하여 해당 버전을 선택하여 다운로드하십시오. 여기서 나는 최신 2.0.0.rc1을 선택했는데 결국 OCD를 업데이트했습니다. 다운로드 한 후 압축을 풀면 Spring Roo의 실행 파일이 빈 디렉토리에있는 폴더가 나타납니다. 다른 시스템에서 실행할 수있는 Bat and Sh의 두 가지 형식이 있음을 알 수 있습니다. 터미널 창에서 향후 작동을 용이하게하려면이 폴더를 환경 변수에 동시에 추가하는 것이 좋습니다.
설치 후 명령 프롬프트 또는 기타 터미널 창을 열고 Roo 명령을 입력하면 Roo를 시작할 수 있습니다. Roo는 명령 프롬프트에 해당하는 폴더 위치에 프로젝트를 생성 할 것이므로 특정 위치에서 프로젝트를 작성 해야하는 경우 먼저 명령 프롬프트에서 해당 폴더로 전환 한 다음 REO를 시작하십시오.
Eclipse 플러그인을 설치하십시오
Eclipse/STS를 열고 다음을 수행하십시오.
도움말을 클릭하십시오. 새 소프트웨어 설치
사용 가능한 소프트웨어 사이트를 클릭하십시오
"$ roo_home/conf/sts-sites-bookmarks.xml"을 찾으려면 가져 오기 버튼을 클릭하고 $ roo_home이 Roo를 설치하는 디렉토리인지 확인하십시오. 필요에 따라 해당 버전을 선택하고 필터 표시 줄에 Roo를 입력하십시오.
기능 스프링 IDE ROO 지원을 선택하십시오
그런 다음 이용 약관을 확인하고 최종적으로 IDE를 다시 시작하도록합니다.
아래는 공식 문서의 사진입니다. 궁금한 점이 있으면이 그림을 따르십시오.
아직 끝나지 않았습니다. 플러그인이 설치되었지만 아직 구성되지 않았습니다. 실제로 구성도 매우 간단합니다. Roo 도구가 설치된 곳에 플러그인을 알려주십시오. Window ▸ 기본 설정을 클릭하십시오. Spring ▸ Roo Support, Open 설정을 한 다음 공식 문서 스크린 샷을 따라 도구 경로를 설정하십시오.
이렇게하면 플러그인이 설정됩니다. 실제로이 플러그인은 효과가 없습니다. Eclipse의 창을 엽니 다. Roo 명령을 실행하는 것은 실제로 명령 프롬프트에서 직접 실행하는 것과 동일하다.
Roo 사용
루어 스크립트를 실행하십시오
$ roo_home/샘플 폴더 아래에는 3 개의 샘플 프로젝트 스크립트가 있으며 Roo로 실행하면 해당 프로젝트를 신속하게 생성 할 수 있습니다. 인내심이 없다면 여기에서 직접 시작할 수 있습니다.
예를 들어, 임상 사례 프로젝트를 실행하려면 다음 명령을 입력 할 수 있습니다.
루> 스크립트 -파일 클리닉
잠시 기다리면 프로그램이 만들어집니다.
마지막으로 Maven을 기반으로 한 Spring Boot 프로그램이 만들어졌습니다. 이것이 아이디어 아래에서 보이는 것입니다. 프로젝트에 Log.rooo라는 로그 파일이 있음을 알 수 있으며,이 ROO 스크립트 실행 내용을 기록합니다. 또한이 프로그램이 아이디어에 따라 몇 가지 오류를보고하는 이유는 모르겠지만 편집 및 작동에는 영향을 미치지 않습니다.
이 Petclinic 샘플 프로그램은 Spring Security를 사용하여 페이지를 보호합니다. 나는 그것을 확인했다. Spring Boot에서는 기본 사용자 이름이 사용자이며 프로그램이 시작될 때 암호가 콘솔에 무작위로 출력됩니다. 최종 스크린 샷은 다음과 같습니다.이 프로그램을 직접 실행하고 테스트 할 수 있습니다.
스크립트 설명
Petclinic의 루 스크립트를 설명해 봅시다. 루가 어떻게 작동하는지 봅시다. 간단한 설명이 있습니다. 자세한 정보가 필요한 경우 공식 문서의 부록을 참조하여 다양한 명령, 매개 변수 및 Roo 사용을 완전히 소개 할 수 있습니다.
첫 번째는 프로젝트를 만들고 최상위 패키지 이름을 지정하는 것입니다.이 패키지 이름은 Maven을 기반으로 스프링 부팅 프로젝트를 만듭니다.
프로젝트 설정 -TopleVelPackage org.springframework.roo.petclinic
그런 다음 여기에서 최대 절전 모드를 사용하여 JPA 스토리지 유형을 지정하면 데이터베이스는 메모리에 저장된 HSQLDB입니다. 물론 다른 데이터베이스도 사용할 수 있지만 사용자 이름과 같은 다른 매개 변수를 추가해야합니다.
JPA 설정 -Provider Hibernate -Database hypersonic_in_memory
그런 다음 엔티티 클래스에 사용될 여러 열거 클래스가 있습니다. 여기에서 ~는 앞서 설정 한 최상위 패키지 이름을 나타냅니다.
Enum type -class ~ .domain.reference.pettypeenum constant --- 이름 dogenum constant --- 이름 catenum constant ---name birdenum type --class ~ .domain.reference.specialtyenum constant -name dentistryenum constant -name 영양소
그런 다음 프로젝트에는 여러 개체 클래스가 있습니다.
엔티티 jpa -class ~ .domain.pet -sequencename pet_seq -entityformatexpression "#{name} (#{type})"Entity jpa -class ~ .domain.visit visit_seq -entityformatmessage visit_formatity jpa -class.abs transpers ontrity jpa. -extends ~ .domain.abstractperson-entityformatexpression "#{lastname} (#{specialty})"Entity jpa -class ~ .domain.owner-extends ~ .domain.abstractperson-entityformatexpression "#{lastname} (#{city})" "다음 제목은 각 엔티티 클래스의 속성 및 서신 관계를 자세히 설정합니다. 많은 것이 있기 때문에 나는 몇 가지 전형적인 것을 선택했습니다. 엔티티 클래스를 설정하기 전에 포커스 명령을 사용하여 설정할 엔티티 클래스를 지정해야합니다.
Focus -Class ~ .domain.petfield boolean -fieldname sendReminders -noTnull -Primitivefield String --fieldName Name 이름 --sizemin 1field 번호 --fieldname weight-type java.lang.float---null----- Min 0field enum-fieldname type ~ .pettype -notype. -fieldName 방문 -타입 ~ .domain.visitfocus --class ~ .domain.abstractsonfersonfield 문자열 --fieldName FirstName ---sizemin 3 -sizemax 30 필드 스트링 --fieldname lastname --sizemin 3 - -sizemax 30 field -fieldnam -notnull -sizemax 50 -sizemin on 1field andend -sizemave -notnull ---sizemax 30 필드 문자열 -필드 이름 전화 -nonnullfield 문자열 --fieldName 홈페이지 --sizemax 30field string -fieldname email ---sizemax 30 -sizemin 6field 날짜 --type java.util.date -notnull
그런 다음 엔티티 클래스 간의 투영 관계를 설정하고 JPA 저장소를 설정하십시오.
엔티티 프로젝션 --class ~ .domain.vetinfo -entity ~ .domain.vet -firtname, firstName, lastName, Specialty -entityFormateXpression " #{firstName} #{lastName}"Repository jpa-entity ~ .domain.vet-interface ~. 습니다.그런 다음 페이지의 양식 및 기타 정보에 해당하는 DTO (데이터 전송 객체)를 설정 한 다음 백그라운드에서 해당 엔티티 클래스로 변환합니다. 여기에서는 파인더, 즉 쿼리 조건을 지정할 수도 있습니다. 쿼리 조건에 대한 규칙은 Spring Data JPA의 관련 내용을 참조하십시오.
dto -class.domain.petnameandweightformbeanfield 문자열 -필드 이름 이름 필드 번호 --fieldname weight-type java.lang.floatfinder add-Entity ~ .domain.pet ---name findbyameandweight --domain.petnameandweightformbean
그런 다음 Spring Web MVC를 설정합니다. 여기서 Thymeleaf가 뷰 레이어로 지정되고 모든 컨트롤러에 대한 JSON 및 Thymeleaf 뷰를 생성합니다.
Web MVC SetupWeb MVC보기 설정 -Type Thymeleafweb MVC 컨트롤러 -all -responsetype jsonweb mvc 컨트롤러 -all -responsetype thymeleaf
그런 다음 생성 된 쿼리 및 세부 사항 페이지가 있습니다. 여기에서는 앞서 설정 한 모든 쿼리 조건에 대해 해당 쿼리 페이지가 생성 된 다음 지정된 엔티티 클래스에 대한 자세한 페이지가 생성됩니다. 마지막으로, 페이지 언어가 지정되어 있으며 영어와 스페인어 만 지원하는 것 같습니다.
// findersweb mvc finder-all -responsetype thymeleaf // detailsweb mvc detail ~ .domain.owner -필드 애완 동물 목록 -views 목록, show, findbycity like -responsetype thymeleafweb mvc detail -all -views list, mvc longrows -code estype thymelef themelefwweb themelefwweb themelef thevwweb
그런 다음 스프링 보안을 사용하여 프로그램을 보호했습니다. 첫 번째 줄은 Spring Security의 기본 구성을 사용하는 것입니다. 사용자 이름은 사용자이고 암호는 콘솔에 인쇄 된 임의의 문자열입니다. 두 번째 줄은 사용자 권한을 구성하고 관리자 역할의 사용자 만 삭제 작업을 수행 할 수 있습니다.
보안 설정 -Provider defaultsecurity authorize -class ~ .service.impl.ownerserviceimpl - -method delete.* -roles admin
그런 다음 감사 기능이 활성화되고 프로그램은 해당 엔티티 클래스의 편집 시간과 편집기를 자동으로 기록합니다.
jpa 감사 setupjpa 감사 추가 -Entity ~ .domain.petjpa audit add ~ .domain.ownerjpa audit add add ~ .domain.visitjpa audit add ~ .domain.vet
그런 다음 웹 서비스 엔드 포인트 기능이 활성화되어 /serviceUrl에서 볼 수 있습니다.
ws endpoint ---- 서비스 ~ .service.api.ownerservice -sei ~ .ws.api.ownerwebservice --class ~ .ws.nendpoint.ownerwebserviceendpoint ---config ~ .config.wsendpointsconfigurationws endpoint ~ .service.petservice -sei ~. ~ .ws.endpoint.petwebserviceendpoint ---config ~ .config.wsendpointsconfiguration
마지막으로, 이러한 엔티티 클래스 및 서비스에 대해 단위 테스트 및 통합 테스트가 자동으로 생성됩니다.
// 모든 EntityTest 장치에 대한 단일 테스트 생성 -Class ~ .domain.ownertest init-class ~ .domain.pettest init-class.vettest 단위 --class ~ .domain.visit // repository 통합 testtesttest testtestration-class.repository ~ .repository -class.worreepository -class.worreepository -class. ~.repository.VisitRepositorytest integration --class ~.repository.PetRepository// Controller integration teststtest integration --class ~.web.OwnersCollectionJsonControllertest integration --class ~.web.PetsItemJsonControllertest integration --class ~.web.VetsCollectionThymeleafControllertest integration --class ~ .web.visitestemThymeleafcontroller
요약
위는 Spring Roo의 설치 및 사용에 대한이 기사의 전체 내용이며, 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!