BAEL-628: Added sources for "Constructor Injection in Spring with Lombok" article. (#1064)
* BAEL-628: Added sources for "Constructor Injection in Spring with Lombok" article. * BAEL-628: Removed unneccessary @Autowired + Apologizer example.
This commit is contained in:
parent
28cbdeb4a9
commit
5548022a2b
|
@ -3,3 +3,4 @@
|
||||||
- [Exploring the Spring BeanFactory API](http://www.baeldung.com/spring-beanfactory)
|
- [Exploring the Spring BeanFactory API](http://www.baeldung.com/spring-beanfactory)
|
||||||
- [How to use the Spring FactoryBean?](http://www.baeldung.com/spring-factorybean)
|
- [How to use the Spring FactoryBean?](http://www.baeldung.com/spring-factorybean)
|
||||||
- [Constructor Dependency Injection in Spring](http://www.baeldung.com/constructor-injection-in-spring)
|
- [Constructor Dependency Injection in Spring](http://www.baeldung.com/constructor-injection-in-spring)
|
||||||
|
- [Constructor Injection in Spring with Lombok](http://inprogress.baeldung.com/constructor-injection-in-spring-with-lombok)
|
||||||
|
|
|
@ -52,6 +52,11 @@
|
||||||
<artifactId>guava</artifactId>
|
<artifactId>guava</artifactId>
|
||||||
<version>${guava.version}</version>
|
<version>${guava.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -131,6 +136,7 @@
|
||||||
<junit.version>4.12</junit.version>
|
<junit.version>4.12</junit.version>
|
||||||
<guava.version>20.0</guava.version>
|
<guava.version>20.0</guava.version>
|
||||||
<maven-war-plugin.version>2.6</maven-war-plugin.version>
|
<maven-war-plugin.version>2.6</maven-war-plugin.version>
|
||||||
|
<lombok.version>1.16.12</lombok.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.baeldung.lombok;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Apologizer {
|
||||||
|
|
||||||
|
private final Translator translator;
|
||||||
|
private final String message;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Apologizer(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 Fareweller {
|
||||||
|
|
||||||
|
private final Translator translator;
|
||||||
|
|
||||||
|
public Fareweller(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 Greeter {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Translator translator;
|
||||||
|
|
||||||
|
public String greet() {
|
||||||
|
return translator.translate("hello");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.baeldung.lombok;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Thanker {
|
||||||
|
|
||||||
|
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 ApologizerAutowiringTest {
|
||||||
|
|
||||||
|
private final static String TRANSLATED = "TRANSLATED";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Apologizer apologizer;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Translator translator;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void apologizeWithTranslatedMessage() {
|
||||||
|
when(translator.translate("sorry")).thenReturn(TRANSLATED);
|
||||||
|
assertEquals(TRANSLATED, apologizer.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 ApologizerTest {
|
||||||
|
|
||||||
|
private final static String MESSAGE = "MESSAGE";
|
||||||
|
private final static String TRANSLATED = "TRANSLATED";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void apologizeWithCustomTranslatedMessage() {
|
||||||
|
Translator translator = mock(Translator.class);
|
||||||
|
Apologizer apologizer = new Apologizer(translator, MESSAGE);
|
||||||
|
when(translator.translate(MESSAGE)).thenReturn(TRANSLATED);
|
||||||
|
assertEquals(TRANSLATED, apologizer.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 FarewellAutowiringTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Fareweller fareweller;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Translator translator;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sayByeWithTranslatedMessage() {
|
||||||
|
String translated = "translated";
|
||||||
|
when(translator.translate("bye")).thenReturn(translated);
|
||||||
|
assertEquals(translated, fareweller.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 FarewellerTest {
|
||||||
|
|
||||||
|
private final static String TRANSLATED = "TRANSLATED";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sayByeWithTranslatedMessage() {
|
||||||
|
Translator translator = mock(Translator.class);
|
||||||
|
when(translator.translate("bye")).thenReturn(TRANSLATED);
|
||||||
|
Fareweller fareweller = new Fareweller(translator);
|
||||||
|
assertEquals(TRANSLATED, fareweller.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 GreeterTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Greeter greeter;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Translator translator;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void greetWithTranslatedMessage() {
|
||||||
|
String translated = "translated";
|
||||||
|
when(translator.translate("hello")).thenReturn(translated);
|
||||||
|
assertEquals(translated, greeter.greet());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void throwWhenInstantiated() {
|
||||||
|
Greeter greeter = new Greeter();
|
||||||
|
greeter.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 ThankerAutowiringTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Thanker thanker;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Translator translator;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void thankWithTranslatedMessage() {
|
||||||
|
String translated = "translated";
|
||||||
|
when(translator.translate("thank you")).thenReturn(translated);
|
||||||
|
assertEquals(translated, thanker.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 ThankerTest {
|
||||||
|
|
||||||
|
private final static String TRANSLATED = "TRANSLATED";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void thankWithTranslatedMessage() {
|
||||||
|
Translator translator = mock(Translator.class);
|
||||||
|
when(translator.translate("thank you")).thenReturn(TRANSLATED);
|
||||||
|
Thanker thanker = new Thanker(translator);
|
||||||
|
assertEquals(TRANSLATED, thanker.thank());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue