数据库中系统参数表system_parameter如下:
字段名 | 类型 | 长度 | 是否为空 | 是否主键 | 字段注释 |
parm_key | varchar | 20 | 否 | 是 | 参数代码 |
parm_name | varchar | 20 | 否 | 否 | 参数名称 |
parm_value | varchar | 255 | 否 | 否 | 参数值 |
update_time | datetime | 否 | 否 | 更新时间 |
数据库表中存储的数据为
在SpringBoot中使用应用程序上下文ApplicationContext获取Bean并调用,文件目录如下:
应用程序启动类Application.java
package com.cn.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import com.cn.demo.util.SpringContextUtil;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext applicationContext = SpringApplication.run(Application.class, args);
SpringContextUtil.setApplicationContext(applicationContext);
}
}
获取上下文工具类SpringContextUtil.java
package com.cn.demo.util;
import org.springframework.context.ApplicationContext;
/**
* 获取上下文工具类
* @author lmq
*
*/
public class SpringContextUtil {
private static ApplicationContext applicationContext;
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
//返回指定bean的实例
public static Object getBean(String beanId) {
return applicationContext.getBean(beanId);
}
}
实体类SystemParameter.java
package com.cn.demo.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "system_parameter")
public class SystemParameter implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column(name = "parm_key")
private String parmKey;
@Column(name = "parm_name")
private String parmName;
@Column(name = "parm_value")
private String parmValue;
@Column(name = "update_time")
private Date updateTime;
public String getParmKey() {
return parmKey;
}
public void setParmKey(String parmKey) {
this.parmKey = parmKey;
}
public String getParmName() {
return parmName;
}
public void setParmName(String parmName) {
this.parmName = parmName;
}
public String getParmValue() {
return parmValue;
}
public void setParmValue(String parmValue) {
this.parmValue = parmValue;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
接口类SystemParameterRepository.java
package com.cn.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.cn.demo.entity.SystemParameter;
@Repository
public interface SystemParameterRepository extends JpaRepository<SystemParameter, String>{
}
服务类SystemParameterService.java
package com.cn.demo.service;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cn.demo.entity.SystemParameter;
import com.cn.demo.repository.SystemParameterRepository;
import com.cn.demo.util.SpringContextUtil;
@Service
public class SystemParameterService {
@Autowired
private SystemParameterRepository systemParameterRepository;
public static SystemParameterService getInstance() {
return (SystemParameterService) SpringContextUtil.getBean("systemParameterService");
}
public String getParameterValue(String parmKey) {
Optional<SystemParameter> systemParameter = systemParameterRepository.findById(parmKey);
if(systemParameter.isPresent()) {
return systemParameter.get().getParmValue();
}else {
return "";
}
}
}
控制器类SystemParameterController.java
package com.cn.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cn.demo.service.SystemParameterService;
@RestController
@RequestMapping("/api")
public class SystemParameterController {
//通过上下文获取系统参数代码为maven-repository-url的参数值
@RequestMapping("/getMvn")
public String getMvnRepositoryUrl() {
String url = SystemParameterService.getInstance().getParameterValue("maven-repository-url");
return url;
}
}
在浏览器中显示如下: