From 63ca6bb7c2b975e8c952954e82c370de451c31f9 Mon Sep 17 00:00:00 2001 From: stvort Date: Wed, 11 Mar 2020 18:42:19 +0400 Subject: [PATCH] 2020-02 spring 05 classwork has been updated --- .../events/PositiveRespondent.java | 6 +++--- .../shell/ApplicationEventsCommands.java | 2 +- .../beans-lifecycle-exercise/pom.xml | 6 ------ .../BeansLifecycleDemoApplication.java | 9 +++++++- .../beanslifecycledemo/domain/Phone.java | 2 ++ .../lifecycle/LifeCycleConfig.java | 2 +- .../shell/LifecycleDemoCommands.java | 18 ---------------- .../src/main/resources/application.yml | 7 +++---- .../conditional-and-profiles-exercise/pom.xml | 8 ------- ...ConditionalAndProfilesDemoApplication.java | 6 +++++- .../model/Party.java | 19 +++++++++++++++++ .../ConditionalAndProfilesDemoCommands.java | 21 ------------------- .../src/main/resources/application.yml | 2 +- 2020-02/spring-05-adv-conf/spring-shell.log | 3 +++ 14 files changed, 46 insertions(+), 65 deletions(-) delete mode 100644 2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/shell/LifecycleDemoCommands.java create mode 100644 2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/model/Party.java delete mode 100644 2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/shell/ConditionalAndProfilesDemoCommands.java create mode 100644 2020-02/spring-05-adv-conf/spring-shell.log diff --git a/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/events/PositiveRespondent.java b/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/events/PositiveRespondent.java index d9071026..fb930f9e 100644 --- a/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/events/PositiveRespondent.java +++ b/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/events/PositiveRespondent.java @@ -1,14 +1,14 @@ package ru.otus.example.applicationeventsdemo.events; import lombok.SneakyThrows; -import org.springframework.context.ApplicationListener; +import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; @Component -public class PositiveRespondent implements ApplicationListener { +public class PositiveRespondent { @SneakyThrows - @Override + @EventListener public void onApplicationEvent(HalfAGlassOfWaterEvent halfAGlassOfWaterEvent) { Thread.sleep(100); System.out.println("Позитивно настроенный слушатель"); diff --git a/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/shell/ApplicationEventsCommands.java b/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/shell/ApplicationEventsCommands.java index 482e9855..153a61ae 100644 --- a/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/shell/ApplicationEventsCommands.java +++ b/2020-02/spring-05-adv-conf/application-events-demo/src/main/java/ru/otus/example/applicationeventsdemo/shell/ApplicationEventsCommands.java @@ -17,7 +17,7 @@ public class ApplicationEventsCommands { private String userName; @ShellMethod(value = "Login command", key = {"l", "login"}) - public String login(@ShellOption(defaultValue = "stvort") String userName) { + public String login(@ShellOption(defaultValue = "AnyUser") String userName) { this.userName = userName; return String.format("Добро пожаловать: %s", userName); } diff --git a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/pom.xml b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/pom.xml index 4c38588c..07e9a902 100644 --- a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/pom.xml +++ b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/pom.xml @@ -24,12 +24,6 @@ spring-boot-starter - - org.springframework.shell - spring-shell-starter - 2.0.1.RELEASE - - org.projectlombok lombok diff --git a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/BeansLifecycleDemoApplication.java b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/BeansLifecycleDemoApplication.java index d3da1418..337afceb 100644 --- a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/BeansLifecycleDemoApplication.java +++ b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/BeansLifecycleDemoApplication.java @@ -2,12 +2,19 @@ package ru.otus.example.beanslifecycledemo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import ru.otus.example.beanslifecycledemo.domain.Phone; @SpringBootApplication public class BeansLifecycleDemoApplication { public static void main(String[] args) { - SpringApplication.run(BeansLifecycleDemoApplication.class, args); + ApplicationContext ctx = SpringApplication.run(BeansLifecycleDemoApplication.class, args); + try { + Phone phone = ctx.getBean(Phone.class); + phone.callFavoriteNumber(); + }catch (Exception e) { + } } } diff --git a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/domain/Phone.java b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/domain/Phone.java index b61d7fd7..81170317 100644 --- a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/domain/Phone.java +++ b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/domain/Phone.java @@ -1,9 +1,11 @@ package ru.otus.example.beanslifecycledemo.domain; import lombok.RequiredArgsConstructor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; @Component +@ConditionalOnProperty(name = "lifecycle.print.enabled", havingValue = "false") @RequiredArgsConstructor public class Phone { private String greeting = "Погнали к родителям"; diff --git a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/lifecycle/LifeCycleConfig.java b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/lifecycle/LifeCycleConfig.java index bd81fea0..afb3b55f 100644 --- a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/lifecycle/LifeCycleConfig.java +++ b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/lifecycle/LifeCycleConfig.java @@ -19,7 +19,7 @@ public class LifeCycleConfig { return new CustomBeanPostProcessor(); } - @ConditionalOnProperty(name = "spring.shell.interactive.enabled", havingValue = "false") + @ConditionalOnProperty(name = "lifecycle.print.enabled", havingValue = "true") @Bean(initMethod = "customInitMethod", destroyMethod = "customDestroyMethod") public CustomLifeCycleBean customLifeCycleBean() { return new CustomLifeCycleBean(); diff --git a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/shell/LifecycleDemoCommands.java b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/shell/LifecycleDemoCommands.java deleted file mode 100644 index 3987bc06..00000000 --- a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/java/ru/otus/example/beanslifecycledemo/shell/LifecycleDemoCommands.java +++ /dev/null @@ -1,18 +0,0 @@ -package ru.otus.example.beanslifecycledemo.shell; - -import lombok.RequiredArgsConstructor; -import org.springframework.shell.standard.ShellComponent; -import org.springframework.shell.standard.ShellMethod; -import ru.otus.example.beanslifecycledemo.domain.Phone; - -@RequiredArgsConstructor -@ShellComponent -public class LifecycleDemoCommands { - - private final Phone phone; - - @ShellMethod(value = "Call favorite number", key = {"call-favorite-number", "cfn"}) - public void callFavoriteNumber() { - phone.callFavoriteNumber(); - } -} diff --git a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/resources/application.yml b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/resources/application.yml index a50954b5..54b14aef 100644 --- a/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/resources/application.yml +++ b/2020-02/spring-05-adv-conf/beans-lifecycle-exercise/src/main/resources/application.yml @@ -2,7 +2,6 @@ logging: level: root: ERROR -spring: - shell: - interactive: - enabled: false +lifecycle: + print: + enabled: true diff --git a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/pom.xml b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/pom.xml index 74ff8168..98e5a36a 100644 --- a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/pom.xml +++ b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/pom.xml @@ -59,14 +59,6 @@ ${junit-jupiter.version} test - - - - org.springframework.shell - spring-shell-starter - 2.0.1.RELEASE - - diff --git a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/ConditionalAndProfilesDemoApplication.java b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/ConditionalAndProfilesDemoApplication.java index 96f37fd9..2aa5c3a4 100644 --- a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/ConditionalAndProfilesDemoApplication.java +++ b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/ConditionalAndProfilesDemoApplication.java @@ -2,12 +2,16 @@ package ru.otus.example.conditionalandprofilesdemo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import ru.otus.example.conditionalandprofilesdemo.model.Party; @SpringBootApplication public class ConditionalAndProfilesDemoApplication { public static void main(String[] args) { - SpringApplication.run(ConditionalAndProfilesDemoApplication.class, args); + ApplicationContext ctx = SpringApplication.run(ConditionalAndProfilesDemoApplication.class, args); + Party party = ctx.getBean(Party.class); + party.printPartyMembers(); } } diff --git a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/model/Party.java b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/model/Party.java new file mode 100644 index 00000000..18a53b5d --- /dev/null +++ b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/model/Party.java @@ -0,0 +1,19 @@ +package ru.otus.example.conditionalandprofilesdemo.model; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import ru.otus.example.conditionalandprofilesdemo.model.base.Friend; + +import java.util.List; +import java.util.stream.Collectors; + +@Component +@RequiredArgsConstructor +public class Party { + private final List partyMembers; + + public void printPartyMembers() { + System.out.println("Участники вечеринки:"); + System.out.println(partyMembers.stream().map(Friend::getName).collect(Collectors.joining("\n"))); + } +} diff --git a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/shell/ConditionalAndProfilesDemoCommands.java b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/shell/ConditionalAndProfilesDemoCommands.java deleted file mode 100644 index a0cf3f0b..00000000 --- a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/java/ru/otus/example/conditionalandprofilesdemo/shell/ConditionalAndProfilesDemoCommands.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.otus.example.conditionalandprofilesdemo.shell; - -import lombok.RequiredArgsConstructor; -import org.springframework.shell.standard.ShellComponent; -import org.springframework.shell.standard.ShellMethod; -import ru.otus.example.conditionalandprofilesdemo.model.base.Friend; - -import java.util.List; -import java.util.stream.Collectors; - -@ShellComponent -@RequiredArgsConstructor -public class ConditionalAndProfilesDemoCommands { - - private final List partyMembers; - - @ShellMethod(value = "Print party members", key = {"print-party-members", "ppm"}) - public String printPartyMembers() { - return partyMembers.stream().map(Friend::getName).collect(Collectors.joining("\n")); - } -} diff --git a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/resources/application.yml b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/resources/application.yml index 0c0aa22a..50db026d 100644 --- a/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/resources/application.yml +++ b/2020-02/spring-05-adv-conf/conditional-and-profiles-exercise/src/main/resources/application.yml @@ -4,7 +4,7 @@ condition: spring: profiles: - #Доступные профили: Oleg, Peter + #Доступные профили: Oleg и Peter active: logging: diff --git a/2020-02/spring-05-adv-conf/spring-shell.log b/2020-02/spring-05-adv-conf/spring-shell.log new file mode 100644 index 00000000..b08d0d80 --- /dev/null +++ b/2020-02/spring-05-adv-conf/spring-shell.log @@ -0,0 +1,3 @@ +1583937635277:p +1583937640796:l +1583937643194:p