Spring Boot uygulama sınıflarının diğer sınıfları genişletebileceğini, ancak main(String[] args)
yöntemlerinin genel olarak SpringApplication.run(Application.class, args)
kullanıldığını fark ettim. Örnekler genellikle Application
sınıf tanımının üstünde farklı ek açıklamalar kullanır.Spring Boot Uygulama sınıfları ne kadar uzanabilir?
1.) Bir Bahar Boot Application.java sınıfı uzatabilirsiniz olası sınıfları nelerdir:
Bu OP üç yakından ilişkili soruların basit bir özeti için sorar?
2.) Her bir uzantı seçeneğinin kullanım amacı nedir?
3.) Belirli bir uzantı seçimi, sınıf tanımına eklenecek belirli ek açıklamaları da belirler mi? Benim araştırma
, şu üç uzantı seçenekleri belirledik:
1.), hiç bir şey uzatın Bu örnekte göre:
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.) Bu uyarınca, WebMvcConfigurerAdapter
uzatın örnek:
@SpringBootApplication
@Controller
public class UiApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(UiApplication.class, args);
}
}
3.), bu örnekte göre, SpringBootServletInitializer
uzatın:
@Configuration
@EnableAutoConfiguration
@EnableScheduling
@ComponentScan
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String... args) {
System.setProperty("spring.profiles.default", System.getProperty("spring.profiles.default", "dev"));
final ApplicationContext applicationContext = SpringApplication.run(Application.class, args);
}
}
Ek açıklamaları ve örneklerden en az diğer şeyleri sakladığımı unutmayın. Bu OP, eğer özel bir açıklama seçimleri veya en az diğer şeylerin, uzatma seçimi ile dikte edilmesi durumunda sorar. Bu takdirde
@SpringBootApplication
public class DevopsbuddyApplication implements CommandLineRunner {
/** The application logger */
private static final Logger LOG = LoggerFactory.getLogger(DevopsbuddyApplication.class);
@Autowired
private UserService userService;
@Value("${webmaster.username}")
private String webmasterUsername;
@Value("${webmaster.password}")
private String webmasterPassword;
@Value("${webmaster.email}")
private String webmasterEmail;
public static void main(String[] args) {
SpringApplication.run(DevopsbuddyApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
User user = UserUtils.createBasicUser(webmasterUsername, webmasterEmail);
user.setPassword(webmasterPassword);
Set<UserRole> userRoles = new HashSet<>();
userRoles.add(new UserRole(user, new Role(RolesEnum.ADMIN)));
LOG.debug("Creating user with username {}", user.getUsername());
userService.createUser(user, PlansEnum.PRO, userRoles);
LOG.info("User {} created", user.getUsername());
}
}
emin değil:
Tüm bu sınıfların javadoc'unu okudunuz mu? Çünkü onlar muhtemelen sorularınızı cevaplıyorlar. –