--Diesmal
UserService
zum Registrieren von Benutzern
--Permanent oder Verarbeitung von "UserRep"
--PasswdEnc` zum Hashing von Passwörtern
――Wenn Sie ein Klassendiagramm zeichnen, sieht es wie folgt aus.PasswdEnc passwdEnc = new PasswdEncImpl();
UserRep userRep = new UserRepImpl();
UserService userService = new UserServiceImpl(passwdEnc, userRep);
――Für "Preset" ...
@ Configuration
.@Configuration
public class AppConfig{
@Bean
UserRep userRep(){
return new UserRepImpl();
}
@Bean
PasswdEnc passwdEnc(){
return new PasswdEncImpl();
}
@Bean
UserService userService(){
return new UserServiceImpl(userRep(), passwdEnc());
}
}
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
//DI-Container generieren
UserService userService = context.getBean(UserService.class)
//Holen Sie sich die voreingestellte Implementierung über DI-Container
―― Mit anderen Worten, die Verwendung von DI-Behältern kann grob in die folgenden drei Phasen unterteilt werden.
@Component //Registrieren Sie sich als Bohne
public class UserRepImpl implemente UserRep {
//Kürzung
}
@Component //Registrieren Sie sich als Bohne
public class PasswdEncImpl implemente PasswdEnc {
//Kürzung
}
@Component //Während Sie sich als Bean registrieren...
public class UserServiceImpl implemente UserService {
@Autowired //Injizieren Sie andere Bohnen
public UserServiceImpl(UserRep userRep, PasswdEnc passwdEnc)
}
-- @ Autowired
** durchsucht den DI-Container nach Beans **, die standardmäßig dem Zieltyp entsprechen.
--Wenn Sie einen Komponentenscan durchführen, müssen Sie das Paket, auf das Sie für den Komponentenscan abzielen möchten, in der Bean-Definitionsdatei wie unten gezeigt angeben.
@Configuration
@ComponentScan("com.example.hoge")
public class AppConfig{
}
--Lookup ist dasselbe wie bei Verwendung der Bean-Definitionsdatei.
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
//DI-Container generieren
UserService userService = context.getBean(UserService.class)
//Holen Sie sich die voreingestellte Implementierung über DI-Container
--NTT DATA Co., Ltd. (2016) "Gründliche Einführung in die Entwicklung von Spring Java-Anwendungen mit Spring Framework" Shosuisha
Recommended Posts