JAVA-19554 Move Constructor Injection in Spring with Lombok article from spring-core-4 module to lombok-2 module (#13758)
This commit is contained in:
@@ -9,4 +9,5 @@ This module contains articles about Project Lombok.
|
||||
- [Lombok Using @With Annotations](https://www.baeldung.com/lombok-with-annotations)
|
||||
- [Lombok’s @ToString Annotation](https://www.baeldung.com/lombok-tostring)
|
||||
- [Jackson’s Deserialization With Lombok](https://www.baeldung.com/java-jackson-deserialization-lombok)
|
||||
- [Constructor Injection in Spring with Lombok](https://www.baeldung.com/spring-injection-lombok)
|
||||
- More articles: [[<-- prev]](../lombok)
|
||||
|
||||
@@ -25,6 +25,10 @@
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ApologizeService {
|
||||
|
||||
private final Translator translator;
|
||||
private final String message;
|
||||
|
||||
@Autowired
|
||||
public ApologizeService(Translator translator) {
|
||||
this(translator, "sorry");
|
||||
}
|
||||
|
||||
public String apologize() {
|
||||
return translator.translate(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class FarewellService {
|
||||
|
||||
private final Translator translator;
|
||||
|
||||
public FarewellService(Translator translator) {
|
||||
this.translator = translator;
|
||||
}
|
||||
|
||||
public String farewell() {
|
||||
return translator.translate("bye");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class GreetingService {
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
public String greet() {
|
||||
return translator.translate("hello");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ThankingService {
|
||||
|
||||
private final Translator translator;
|
||||
|
||||
public String thank() {
|
||||
return translator.translate("thank you");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
public interface Translator {
|
||||
String translate(String input);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class ApologizeServiceAutowiringIntegrationTest {
|
||||
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Autowired
|
||||
private ApologizeService apologizeService;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void apologizeWithTranslatedMessage() {
|
||||
when(translator.translate("sorry")).thenReturn(TRANSLATED);
|
||||
assertEquals(TRANSLATED, apologizeService.apologize());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class ApologizeServiceIntegrationTest {
|
||||
|
||||
private final static String MESSAGE = "MESSAGE";
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Test
|
||||
public void apologizeWithCustomTranslatedMessage() {
|
||||
Translator translator = mock(Translator.class);
|
||||
ApologizeService apologizeService = new ApologizeService(translator, MESSAGE);
|
||||
when(translator.translate(MESSAGE)).thenReturn(TRANSLATED);
|
||||
assertEquals(TRANSLATED, apologizeService.apologize());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class FarewellAutowiringIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private FarewellService farewellService;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void sayByeWithTranslatedMessage() {
|
||||
String translated = "translated";
|
||||
when(translator.translate("bye")).thenReturn(translated);
|
||||
assertEquals(translated, farewellService.farewell());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class FarewellServiceIntegrationTest {
|
||||
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Test
|
||||
public void sayByeWithTranslatedMessage() {
|
||||
Translator translator = mock(Translator.class);
|
||||
when(translator.translate("bye")).thenReturn(TRANSLATED);
|
||||
FarewellService farewellService = new FarewellService(translator);
|
||||
assertEquals(TRANSLATED, farewellService.farewell());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class GreetingServiceIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private GreetingService greetingService;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void greetWithTranslatedMessage() {
|
||||
String translated = "translated";
|
||||
when(translator.translate("hello")).thenReturn(translated);
|
||||
assertEquals(translated, greetingService.greet());
|
||||
}
|
||||
|
||||
@Test(expected = NullPointerException.class)
|
||||
public void throwWhenInstantiated() {
|
||||
GreetingService greetingService = new GreetingService();
|
||||
greetingService.greet();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan("com.baeldung.lombok")
|
||||
class TestConfig {
|
||||
|
||||
@Bean
|
||||
public Translator mockTranslator() {
|
||||
return mock(Translator.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class ThankingServiceAutowiringIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private ThankingService thankingService;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void thankWithTranslatedMessage() {
|
||||
String translated = "translated";
|
||||
when(translator.translate("thank you")).thenReturn(translated);
|
||||
assertEquals(translated, thankingService.thank());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class ThankingServiceIntegrationTest {
|
||||
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Test
|
||||
public void thankWithTranslatedMessage() {
|
||||
Translator translator = mock(Translator.class);
|
||||
when(translator.translate("thank you")).thenReturn(TRANSLATED);
|
||||
ThankingService thankingService = new ThankingService(translator);
|
||||
assertEquals(TRANSLATED, thankingService.thank());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user