springboot-31-springboot静态注入
springboot中 使用 @Autowired 注入时, 是可以为静态变量进行注入的
package com.iwhere.footmark.tools; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component; /**
* 测试静态注入
* @author wenbronk
* @time 2017年8月30日 上午9:40:00
*/
@Component
public class StaticTest { private static StringRedisTemplate redis;
@Autowired
public void setRedis(StringRedisTemplate redis){
StaticTest.redis = redis;
} public static void setGet() {
String key = "abc";
ValueOperations<String, String> opsForValue = redis.opsForValue();
opsForValue.set(key, "static_test_value");
String string = opsForValue.get(key);
System.out.println(string);
} }
然后, 调用的方式为:
@Autowired
private TestService TestService; @RequestMapping("/")
public String test() {
// String test = TestService.test();
StaticTest.setGet();
return test;
}
也可以在 application.yml中的常量, 使用静态注入:
package com.iwhere.footmark.properties; import java.util.ArrayList;
import java.util.List; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration; /**
* 常量配置
*
* @author wenbronk
* @Date 下午5:15:32
*/
@Configuration
@ConfigurationProperties(prefix = "custom.constance")
public class ConstanceProperties {
public static final Integer FOOT_DEFAULT_LEVEL = ;
public static final Integer FOOT_MARK_GEOLEVEL = ;
public static final String BGM_URL = "http://qiniu.iwhere.com/track/9/fenghuanggucheng/backgroundmusic1.mp3";
// http://qiniu.iwhere.com/track/9/fenghuanggucheng/backgroundmusic3.mp3
public static final String TEMPLATE_CODE = "";
public static final Integer FOOT_MARK_MAX = ;
public static final String USER_AND_TOURIS_KEY = "44D2568638FFF096996CB6544CAC6B15";
public static final String DEFAULT_IMG_URL = "http://qiniu.iwhere.com/track/9/fenghuanggucheng/foxiangge1.jpeg"; private static Integer footDefaultLevel = FOOT_DEFAULT_LEVEL;
private static Integer footMarkGeoLevel = FOOT_MARK_GEOLEVEL;
private static String bgmUrl = BGM_URL;
private static String bgmUrl2;
private static String bgmUrl3;
private static Integer footMarkMax = FOOT_MARK_MAX;
private static String templateCode = TEMPLATE_CODE;
private static String userAndTourisKey = USER_AND_TOURIS_KEY;
private static String defaultImgUrl = DEFAULT_IMG_URL; public static List<String> getBgmUrls() {
List<String> result = new ArrayList<>();
result.add(bgmUrl);
result.add(bgmUrl2);
result.add(bgmUrl3);
return result;
} public static Integer getFootDefaultLevel() {
return footDefaultLevel;
} public static void setFootDefaultLevel(Integer footDefaultLevel) {
ConstanceProperties.footDefaultLevel = footDefaultLevel;
} public static Integer getFootMarkGeoLevel() {
return footMarkGeoLevel;
} public static void setFootMarkGeoLevel(Integer footMarkGeoLevel) {
ConstanceProperties.footMarkGeoLevel = footMarkGeoLevel;
} public static String getBgmUrl() {
return bgmUrl;
} public static void setBgmUrl(String bgmUrl) {
ConstanceProperties.bgmUrl = bgmUrl;
} public static Integer getFootMarkMax() {
return footMarkMax;
} public static void setFootMarkMax(Integer footMarkMax) {
ConstanceProperties.footMarkMax = footMarkMax;
} public static String getTemplateCode() {
return templateCode;
} public static void setTemplateCode(String templateCode) {
ConstanceProperties.templateCode = templateCode;
} public static String getUserAndTourisKey() {
return userAndTourisKey;
} public static void setUserAndTourisKey(String userAndTourisKey) {
ConstanceProperties.userAndTourisKey = userAndTourisKey;
} public static String getDefaultImgUrl() {
return defaultImgUrl;
} public static void setDefaultImgUrl(String defaultImgUrl) {
ConstanceProperties.defaultImgUrl = defaultImgUrl;
} public static String getBgmUrl2() {
return bgmUrl2;
} public static void setBgmUrl2(String bgmUrl2) {
ConstanceProperties.bgmUrl2 = bgmUrl2;
} public static String getBgmUrl3() {
return bgmUrl3;
} public static void setBgmUrl3(String bgmUrl3) {
ConstanceProperties.bgmUrl3 = bgmUrl3;
} }
springboot-31-springboot静态注入的更多相关文章
- Springboot 工具类静态注入
用springboot搭了一个项目,里面要用到一个DictUtils,因为要用到DictMapper,在百度找了一些方法,最后用下面的方法能成功获取到DictMapper @Component pub ...
- Spring不能直接@autowired注入Static变量/ 关于SpringBoot的@Autowired 静态变量注入
昨天在编写JavaMail工具类的时候,静态方法调用静态变量,这是很正常的操作,当时也没多想,直接静态注入. @Component public class JavaMailUtil { @Autow ...
- Spring-Boot 内置静态资源文件地址修改
Spring-Boot 内置MVC静态文件地址修改 Why:1.Spring-Boot修改内置SpringMVC静态资源路径,提高项目目录结构的安全性.2.配置拦截路径时可以剔除静态文件拦截How:1 ...
- Springboot】Springboot整合邮件服务(HTML/附件/模板-QQ、网易)
介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动.营销广告等:对内可以发送系统监控报告与告警. 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置. 如图所 ...
- 【SpringBoot】SpringBoot与SpringMVC自动配置(五)
本文介绍SpringBoot对Spring MVC自动配置,SpringBoot自动配置原理可以参考:[SpringBoot]SpringBoot配置与单元测试(二) 首先新建一个SpringBoot ...
- springBoot系列-->springBoot注解大全
一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...
- 【SpringBoot】SpringBoot 国际化(七)
本周介绍SpringBoot项目的国际化是如何处理的,阅读本章前请阅读[SpringBoot]SpringBoot与Thymeleaf模版(六)的相关内容 国际化原理 1.在Spring中有国际化Lo ...
- 【SpringBoot】SpringBoot配置与单元测试(二)
SpringBoot项目创建参考[SpringBoot]SpringBoot快速入门(一) 本文介绍SpringBoot项目的POM文件.配置与单元测试 POM文件 1.SpringBoot的pom文 ...
- SpringBoot(四) -- SpringBoot与Web开发
一.发开前准备 1.创建一个SpringBoot应用,引入我们需要的模块 2.SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置,就能运行起来 3.编写业务代码 二.静态资 ...
随机推荐
- 通过request获取网页资讯 通过BeautifulSoup剖析网页元素
import requests newsUrl ='http://news.sina.com.cn/china/' res = requests.get(newsUrl) res.encoding ...
- (day20)javaEE三大组件之一Servlet (简介(二)servletconfig,servletContext,session,cookie,request,response,out)
javaEE是服务器编程,javaEE提供了服务器的接口让具体的服务器去创建实现的对象 JavaEE是sun公司为了解决企业级开发定义的一套技术,只提供了规范,具体的实现是由服务器完成的 servle ...
- OC语言-block and delegate
参考博客 OC语言BLOCK和协议 iOS Block iOS Block循环引用精讲 iOS之轻松上手block 深入浅出Block的方方面面 Block apple官方参考 1.定义一个block ...
- 电容器的ESR
电容器的ESR(等效串联电阻)Equivalent Series Resistance 作为开关电源的输出整流滤波电容器,电容量往往是首要的选择,铝电解电容器的电容量完全可以满足要求,而ESR则 ...
- Python 中的深拷贝和浅拷贝
一.浅拷贝python中 对象赋值时 默认是浅拷贝,满足如下规律:1. 对于 不可变对象(字符串,元组 等),赋值 实际上是创建一个新的对象:例如: >>> person=['nam ...
- 用光的微粒说和广义相对论来解释衍射现象 Explanation of Diffraction Phenomenon by Particle Theory of Light and General Relativity
历史上,物理学是用波动说来解释光的衍射现象.但用微粒说结合广义相对论同样可以做到. 把光看作粒子,当经过障碍物边缘时,由于广义相对论效应,边缘附近的空间被弯曲,使得不同路径的平行光发生偏转,落在障碍物 ...
- JS学习笔记5_DOM
1.DOM节点的常用属性(所有节点都支持) nodeType:元素1,属性2,文本3 nodeName:元素标签名的大写形式 nodeValue:元素节点为null,文本节点为文本内容,属性节点为属性 ...
- C# Winform 换肤
本来计划接着上篇 C# Winform模仿百度日历,发现一时半会写不完,只写了一小半还不全,暂且搁置下.现在计划下班后每天至少写一篇博客,未能完成的等周末(不加班都情况)补充完整. 本篇博客窗体换肤, ...
- 【js】关于正则表达式
正则表达式描述了字符的模式对象 语法: var patt=new RegExp(pattern,modifiers); 或更简单的方法 var patt=/pattern/modifiers; 模式描 ...
- 不同的最小割(cqoi2016,bzoj4519)(最小割树)
学过图论的同学都知道最小割的概念:对于一个图,某个对图中结点的划分将图中所有结点分成 两个部分,如果结点\(s,t\)不在同一个部分中,则称这个划分是关于\(s,t\)的割.对于带权图来说,将 所有顶 ...