springboot~starter包的制作
springboot2.7之前的自动装配
springboot-starter包,是一个公用组件包,它在被项目引用之后,它内部的bean被完成自动装载,这个过程通过resources/META-INF/spring.factories
文件来实现的
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.lind.mybatis.config.MybatisPlusConfig
另外,也可以通过在resources/META-INF/spring
文件夹,添加文件org.springframework.boot.autoconfigure.AutoConfiguration.imports
来实现bean的自己装载
springboot2.7中的自动配置
新的@AutoConfiguration 注解,引入了新的@AutoConfiguration注释。 这个类用于声明在上面自动配置注册中的AutoConfig类,它替代了@Configuration,只有自动配置类才能使用。你还可以通过其 after、afterNames、before、beforeNames 属性代替 @AutoConfigureAfter和@AutoConfigureBefore。
国际化
- 另外,如果使用在starter包中使用国际化功能,可以在resources/i18n文件夹,添加
messages_zh_CN.properties
来实现,其中zh_CN表示中文,你可以定义其它语言,注意在配置中,中文需要传成unicode字符。
例如:
sys.user.update.passwordError=\u539F\u5BC6\u7801\u9519\u8BEF\uFF0C\u4FEE\u6539\u5931\u8D25
sys.user.query.error=\u83B7\u53D6\u5F53\u524D\u7528\u6237\u4FE1\u606F\u5931\u8D25
通过MessageSource
对象来获取最终的配置信息,它与当前语言环境有关,中英文可以自动切换的,自己可以封装一下Message的对象,方便以后使用它
@UtilityClass
public class MsgUtils {
/**
* 通过code 获取中文错误信息
* @param code
* @return
*/
public String getMessage(String code) {
MessageSource messageSource = SpringUtil.getBean("messageSource");
return messageSource.getMessage(code, null, Locale.CHINA);
}
/**
* 通过code 和参数获取中文错误信息
* @param code
* @return
*/
public String getMessage(String code, Object... objects) {
MessageSource messageSource = SpringUtil.getBean("messageSource");
return messageSource.getMessage(code, objects, Locale.CHINA);
}
}
- 使用
SYS_PARAM_DELETE_SYSTEM="sys.user.query.error";
String fail=MsgUtils.getMessage(ErrorCodes.SYS_PARAM_DELETE_SYSTEM);