SpingMVC中Utils工具类静态方法调用Service层
本文最后更新于 2024-08-29,文章内容可能已经过时。
引言
之前在百度、CSDN上查询了各种方法,一直都是空指针异常,原因就是static问题。
先上图。
之前把service层用@PostConstruct赋值后就直接用静态去获取成Settings就是这里出的问题。
解决
对于定义的Static变量赋值问题应该把调用的service层以及获取数据全部放在init初始化里。就不会报错。
对于方法而言就直接调用就行。下面是代码
@Component
public class MailConfig {
@Autowired
private SettingsService settingsService;
public static MailConfig mailConfig;
private static final String PROPERTIES_DEFAULT = "mailConfig.properties";
public static String host;
public static Integer port;
public static String userName;
public static String passWord;
public static String emailForm;
public static String timeout;
public static String personal;
public static Properties properties;
@PostConstruct
public void init(){
mailConfig = this;
mailConfig.settingsService = this.settingsService;
try {
MailSettings ms = JSON.parseObject(mailConfig.settingsService.getSettings().getMailSettings(), MailSettings.class);
host = ms.getMailHost();
port = new Integer(ms.getMailPort());
userName = ms.getMailUsername();
passWord = ms.getMailPassword();
emailForm = ms.getMailUsername();
timeout = ms.getMailTimeout();
personal = ms.getPersonal();
}catch (Exception e) {
e.printStackTrace();
}
}
public static void xx(){
mailConfig.settingsService.xx();
}
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 jampang.cn
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果