wnameless / spring-boot-up-core

Core library for spring-boot-up

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maven Central codecov

spring-boot-up-core

Core library for spring-boot-up.

Purpose

Easily access to the Spring ApplicationContext within an application.

SpringBootUp.getBean("MyBean");

Maven Repo

<dependency>
	<groupId>com.github.wnameless.spring.boot.up</groupId>
	<artifactId>spring-boot-up-core</artifactId>
	<version>${newestVersion}</version>
	<!-- Newest version shows in the maven-central badge above -->
</dependency>

This lib uses Semantic Versioning: {MAJOR.MINOR.PATCH}.
However, the MAJOR version is always matched the Spring Boot MAJOR version.

Quick Start

@EnableSpringBootUp
@Configuration
public class MyConfiguration {}

Feature List

Name Option Description Exception-Free Since
Bean Provide methods that return Optional values to prevent exceptions v3.0.0
findGenericBean Find an Optional of target generic bean ✔️ v3.0.0
findAllGenericBeans Find a List of target generic beans ✔️ v3.0.0
getBean(type)
getBean(beanName)
Shortcut: ApplicationContext#getBean v3.0.0
findBean(type)
findBean(beanName)
Find an Optional of target bean ✔️ v3.0.0
getBean(type, arg...) Shortcut: ApplicationContext#getBean v3.0.0
findBean(type, arg...) Find an Optional of target bean with args ✔️ v3.0.0
getBean(beanName, requiredType) Shortcut: ApplicationContext#getBean v3.0.0
findBean(beanName, requiredType) Find an Optional of target bean with generics ✔️ v3.0.0
getBeansOfType Shortcut: ApplicationContext#getBeansOfType v3.0.0
getBeansWithAnnotation Shortcut: ApplicationContext#getBeansWithAnnotation v3.0.0
containsBean(type)
containsBean(beanName)
Check bean existence ✔️ v3.0.0
Message Remove Locale argument by utilizing LocaleContextHolder#getLocale v3.0.0
getMessage(code) Shortcut: ApplicationContext#getMessage v3.0.0
findMessage(code) Find an Optional of a message ✔️ v3.0.0
getMessage(code, arg...) Shortcut: ApplicationContext#getMessage v3.0.0
findMessage(code, arg...) Find an Optional of a message with args ✔️ v3.0.0
getMessage(code, args, default) Shortcut: ApplicationContext#getMessage ✔️ v3.0.0
getMessage(MessageSourceResolvable) Shortcut: ApplicationContext#getMessage v3.0.0
findMessage(MessageSourceResolvable) Find an Optional of a message with MessageSourceResolvable ✔️ v3.0.0
Event Shortcut: ApplicationContext#publishEvent - v3.0.0
Enviroment Shortcut: Enviroment - v3.0.0
ApplicationContext Shortcut: ApplicationContext - v3.0.0

🔝 Bean

🔝 findGenericBean

Optional<GenericBean<String>> genericBean = SpringBootUp.findGenericBean(GenericBean.class, String.class);

🔝 findAllGenericBeans

List<GenericBean<String>> allGenericBeans = SpringBootUp.findAllGenericBeans(GenericBean.class, String.class);

🔝 getBean(type), getBean(beanName)

TestBean bean;
// Equivalent to ApplicationContext#getBean(Class)
bean = SpringBootUp.getBean(TestBean.class);
// Equivalent to ApplicationContext#getBean(String)
bean = SpringBootUp.getBean("testBean");

🔝 findBean(type), findBean(beanName)

Optional<TestBean> beanOpt;
beanOpt = SpringBootUp.findBean(TestBean.class);
beanOpt = SpringBootUp.findBean("testBean");

🔝 getBean(type, arg...)

TestArgBean argBean;
// Equivalent to ApplicationContext#getBean(Class, Object...)
argBean = SpringBootUp.getBean(TestBean.class, "arg");
// Equivalent to ApplicationContext#getBean(String, Object...)
argBean = SpringBootUp.getBean("testBean", "arg");

🔝 findBean(type, arg...)

Optional<TestArgBean> argBeanOpt;
argBeanOpt = SpringBootUp.findBean(TestBean.class, "arg");
argBeanOpt = SpringBootUp.findBean("testBean", "arg");

🔝 getBean(beanName, requiredType)

// Equivalent to ApplicationContext#getBean(String, Class)
TestBean beanWithRequiredType = SpringBootUp.getBean("testBean", TestBean.class);

🔝 findBean(beanName, requiredType)

Optional<TestBean> beanWithRequiredType = SpringBootUp.findBean("testBean", TestBean.class);

🔝 getBeansOfType

Map<String, GenericBean<?>> beansOfType;
// Equivalent to ApplicationContext#getBeansOfType(Class)
beansOfType = SpringBootUp.getBeansOfType(GenericBean.class);
// Equivalent to ApplicationContext#getBeansOfType(Class, boolean, boolean)
beansOfType = SpringBootUp.getBeansOfType(GenericBean.class, true, true);

🔝 getBeansWithAnnotation

// Equivalent to ApplicationContext#getBeansWithAnnotation(Class)
Map<String, Object> beansWithAnnotation = SpringBootUp.getBeansWithAnnotation(TestAnnotation.class);

🔝 containsBean

// Equivalent to ApplicationContext#containsBean(String)
SpringBootUp.containsBean("testBean");
SpringBootUp.containsBean(TestBean.class);

🔝 Message - removing Locale arguments by using LocaleContextHolder#getLocale

🔝 getMessage(code)

String msg = SpringBootUp.getMessage("test.spring.boot.up.message");

🔝 findMessage(code)

Optional<String> msgOpt = SpringBootUp.findMessage("test.spring.boot.up.message");

🔝 getMessage(code, arg...)

String msg = SpringBootUp.getMessage("test.spring.boot.up.message", "test");

🔝 findMessage(code, arg...)

Optional<String> msgOpt = SpringBootUp.findMessage("test.spring.boot.up.message", "test");

🔝 getMessage(code, args, default)

// Get message with args and default, no Exception
String msg = SpringBootUp.getMessage("test.spring.boot.up.message", new Object[] {"test"}, ""));

🔝 getMessage(MessageSourceResolvable)

MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable("test.spring.boot.up.message");
String msg = SpringBootUp.getMessage(resolvable);

🔝 findMessage(MessageSourceResolvable)

MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable("test.spring.boot.up.message");
Optional<String> msgOpt = SpringBootUp.findMessage(resolvable);

🔝 Event

// TestApplicationEvent extends ApplicationEvent
SpringBootUp.publishEvent(new TestApplicationEvent("testEvent"));
SpringBootUp.publishEvent("testEvent");

🔝 Enviroment

Enviroment env = SpringBootUp.enviroment();

🔝 ApplicationContext

ApplicationContext appCtx = SpringBootUp.appicationContext();

MISC

Note Since
Java 17 required. v3.0.0
Spring Boot 3.0.0+ required. v3.0.0

About

Core library for spring-boot-up

License:Apache License 2.0


Languages

Language:Java 100.0%