BAEL-5336 Move code for the article to spring-di-3 (#11807)

* JAVA-7535 Moved ebook specific code snippets to maven-simple module

* COMAUTO-9485 Fixed DB url in spring-project and added missing maven wrapper

* Code for the Spring @Autowired Field Null – Common Causes and Solutions article

* JAVA-7535 Added code for maven-multi-module

* JAVA-7535 Pom formatting

* JAVA-7535 Pom formatting

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Create README.md

* Create README.md

* JAVA-9825: Upgrade log4j version for modules that use log4j-core library
directly

* BAEL-5188 Add CSRF cookie protection + test (#11775)

* BAEL-5188 Add CSRF cookie protection + test

* BAEL-5188 Break long lines of code

* BAEL-5188 Remove line-breaks before semi-colons

* BAEL-5378 Rename exceptions to avoid confusion (#11801)

* BAEL-5336 Move code for the article to spring-di-3

Co-authored-by: Dhawal Kapil <dhawal.kapil@africa.airtel.com>
Co-authored-by: Dhawal Kapil <dhawalkapil@gmail.com>
Co-authored-by: johnA1331 <53036378+johnA1331@users.noreply.github.com>
Co-authored-by: sampadawagde <sampada.aws@gmail.com>
Co-authored-by: Benjamin Caure <bcaure@gmail.com>
Co-authored-by: ashleyfrieze <ashley@incredible.org.uk>
This commit is contained in:
thibaultfaure 2022-02-14 14:31:59 -03:00 committed by GitHub
parent 7f84edf0f8
commit 7a15270fc3
8 changed files with 141 additions and 0 deletions

View File

@ -0,0 +1,14 @@
package com.baeldung.autowiring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

View File

@ -0,0 +1,18 @@
package com.baeldung.autowiring.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.baeldung.autowiring.service.MyService;
@Controller
public class CorrectController {
@Autowired
MyService myService;
public String control() {
return myService.serve();
}
}

View File

@ -0,0 +1,15 @@
package com.baeldung.autowiring.controller;
import org.springframework.stereotype.Controller;
import com.baeldung.autowiring.service.MyService;
@Controller
public class FlawedController {
public String control() {
MyService userService = new MyService();
return userService.serve();
}
}

View File

@ -0,0 +1,10 @@
package com.baeldung.autowiring.service;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
public void doWork() {}
}

View File

@ -0,0 +1,19 @@
package com.baeldung.autowiring.service;
import org.springframework.beans.factory.annotation.Autowired;
/**
* The bean corresponding to this class is defined in MyServiceConfiguration
* Alternatively, you could choose to decorate this class with @Component or @Service
*/
public class MyService {
@Autowired
MyComponent myComponent;
public String serve() {
myComponent.doWork();
return "success";
}
}

View File

@ -0,0 +1,14 @@
package com.baeldung.autowiring.service;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyServiceConfiguration {
@Bean
MyService myService() {
return new MyService();
}
}

View File

@ -0,0 +1,23 @@
package com.baeldung.autowiring.controller;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class CorrectControllerIntegrationTest {
@Autowired
CorrectController controller;
@Test
void whenControl_ThenRunSuccessfully() {
assertDoesNotThrow(() -> controller.control());
}
}

View File

@ -0,0 +1,28 @@
package com.baeldung.autowiring.controller;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import static org.junit.jupiter.api.Assertions.assertThrows;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class FlawedControllerIntegrationTest {
private static final Logger LOGGER = LoggerFactory.getLogger(FlawedControllerIntegrationTest.class);
@Autowired
FlawedController myController;
@Test
void whenControl_ThenThrowNullPointerException() {
NullPointerException npe = assertThrows(NullPointerException.class, () -> myController.control());
LOGGER.error("Got a NullPointerException", npe);
}
}