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);
posted @ 2022-07-04 11:38  张占岭  阅读(477)  评论(0编辑  收藏  举报