그래들 및 스프링 부츠와 함께 롬복 사용
저는 롬복으로 프로젝트를 진행하려고 하는데 이것이 제가 가지고 있는 의지력입니다.
dependencies {
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.social:spring-social-facebook")
compile("org.springframework.social:spring-social-twitter")
testCompile("org.springframework.boot:spring-boot-starter-test")
testCompile("junit:junit")
compile("org.springframework.boot:spring-boot-devtools")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("mysql:mysql-connector-java")
compileOnly("org.projectlombok:lombok:1.16.10")
}
아노테이션도 넣을 수 있고, 롬복도 에디터에 포함시켰습니다.롬복으로 코드 컴파일도 할 수 있고 롬복으로 생성된 메서드로 cal을 할 수도 있습니다.
이것은 나의 엔티티입니다.
@Data
@Entity
@Table(name = "TEA_USER", uniqueConstraints = {
@UniqueConstraint(columnNames = { "USR_EMAIL" }),
@UniqueConstraint(columnNames = { "USR_NAME" })
})
public class User {
@NotNull
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="USR_ID")
private long id;
@NotNull
@Column(name="USR_FNAME")
private String firstName;
@NotNull
@Column(name="USR_LNAME")
private String lastName;
@NotNull
@Min(5)
@Max(30)
@Column(name="USR_NAME")
private String username;
@Column(name="USR_EMAIL")
private String email;
@Min(8)
@NotNull
@Column(name="USR_PASSWORD")
private String password;
}
이 함수는 세밀하게 컴파일 할 수 있습니다.
@PostMapping("/registration/register")
public String doRegister (@ModelAttribute @Valid User user, BindingResult result){
user.getEmail();
System.out.println(user.getFirstName());
if (result.hasErrors()) {
return "register/customRegister";
}
this.userRepository.save(user);
return "register/customRegistered";
}
그러나 bootRun을 실행하여 기능에 액세스하려고 하면 다음과 같은 예외가 발생합니다.
org.springframework.beans.NotReadablePropertyException: Invalid property 'firstName' of bean class [com.lucasfrossard.entities.User]: Bean property 'firstName' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
단, 수동으로 setter와 getter를 포함하면 문제가 없습니다.무슨 일이 일어나고 있고 어떻게 고쳐야 할지 모르겠어요.감 잡히는 게 없어요?
최신 Lombok 1.18에서는 심플합니다. io.franzbecker.gradle-lombok
플러그인은 필요 없습니다.프로젝트의 종속성 예:
dependencies {
implementation "org.springframework.boot:spring-boot-starter-thymeleaf"
implementation "org.springframework.social:spring-social-facebook"
implementation "org.springframework.social:spring-social-twitter"
implementation "org.springframework.boot:spring-boot-starter-data-jpa"
testImplementation "org.springframework.boot:spring-boot-starter-test"
runtimeClasspath "org.springframework.boot:spring-boot-devtools"
runtime "mysql:mysql-connector-java"
// https://projectlombok.org
compileOnly 'org.projectlombok:lombok:1.18.4'
annotationProcessor 'org.projectlombok:lombok:1.18.4'
}
기타 제안:
testCompile("junit:junit")
는 필수가 아닙니다.spring-boot-starter-test
'스타터'에는 JUnit이 들어있습니다.- 사용하다
implementation
또는api
대신 설정compile
(Gradle 3.4 이후).어떻게 해야 제대로 된 걸 고를 수 있지? 사용 안 함
compile
설정devtools
. 개발자 도구 가이드의 힌트:Maven에서 종속성에 플래그를 옵션으로 지정하거나 사용자 지정 사용
developmentOnly
gradle 구성(위 그림 참조)은 프로젝트를 사용하는 다른 모듈에 devtools가 일시적으로 적용되지 않도록 하는 모범 사례입니다.IntelliJ IDEA 를 사용하는 경우는, Lombok 플러그 인이 인스톨 되어 있고, 주석 처리가 유효하게 되어 있는 것을 확인해 주세요.초기 프로젝트 셋업을 쉽게 할 수 있도록 필요에 따라 Lombok 플러그인을 지정할 수도 있습니다.
한동안 이 문제로 고민하다가 이 플러그인이 효과가 있다는 것을 알게 되었습니다.
https://github.com/franzbecker/gradle-lombok
그래들 파일은 다음과 같습니다.
buildscript {
repositories {
maven { url "https://repo.spring.io/libs-milestone" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")
classpath 'org.springframework:springloaded:1.2.6.RELEASE'
}
}
plugins {
id 'io.franzbecker.gradle-lombok' version '1.8'
id 'java'
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
jar {
baseName = 'gs-accessing-facebook'
version = '0.1.0'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-milestone" }
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
// compile("org.projectlombok:lombok:1.16.10")
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.social:spring-social-facebook")
compile("org.springframework.social:spring-social-twitter")
testCompile("org.springframework.boot:spring-boot-starter-test")
testCompile("junit:junit")
compile("org.springframework.boot:spring-boot-devtools")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("mysql:mysql-connector-java")
}
idea {
module {
inheritOutputDirs = false
outputDir = file("$buildDir/classes/main/")
}
}
bootRun {
addResources = true
jvmArgs "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
}
이 플러그인은 전에 본 적이 있는데 제가 잘못해서 작동하지 않았습니다.이제 효과가 있어서 다행이에요.
감사합니다!
사용하시는 경우Eclipse
또는 그 오프샵 중 하나(Spring Tool Suite를 사용하고 있습니다.4.5.1.RELEASE
, - 다른 모든 릴리스에도 같은 순서가 적용됩니다).필요한 것은 다음과 같습니다.
인
build.gradle
:dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' }
다음으로 [프로젝트]> [ Gradle ]> [ Refresh Gradle Project ]를 오른쪽 클릭합니다.그
lombok-"version".jar
프로젝트의 프로젝트 및 외부 종속성 내에 표시됩니다.오른쪽 클릭
lombok-"version".jar
> [ Run As ]> [ Java Application ](실제 jar를 더블 클릭하거나 실행하는 것과 유사)java -jar lombok-"version".jar
를 참조해 주세요).에 따라 GUI가 표시되며, 그 중 가 GUI를 복사하는 GUI gui gui 、 GUI 、 GUI 。
lombok.jar
IDE를 사용하다
주의: IDE 를 재기동해, 이전에 컴파일 한 파일을 모두 클리어 해 주세요.
언급URL : https://stackoverflow.com/questions/40475910/using-lombok-with-gradle-and-spring-boot
'programing' 카테고리의 다른 글
react.js의 인스턴스 v 상태 변수 (0) | 2023.03.13 |
---|---|
jQuery.getJSON 및 jQuery.parseJSON return [객체]? (0) | 2023.03.13 |
플라스크에서 양식 데이터를 얻는 방법은? (0) | 2023.03.13 |
Angular.js vs 녹아웃.js vs Backbone.js (0) | 2023.03.13 |
새로운 @angular/cli 버전의 angular-cli.json 파일은 어디에 있습니까? (0) | 2023.03.08 |