2020.1.19学習ノート
14611 ワード
学習ノート前言 アプリケーションContextコンテキスト Integer型回転Long型 javaの現在のクラス名とメソッド を取得 SpringBoot RedisTemplate注入失敗 System.currentTimeMillis() System.currentTimeMillis()現在の時間を取得 前言
今日出勤する時、いくつかの穴を踏んで、まず彼を一つ一つ覚えて、勉強と見なしました.
アプリケーションコンテキスト通常コンテキストを取得するには、ApplicationContextAwareインタフェース を実装する必要があります.注意:自分のnewクラスは@Autowaredで注入できないので、Beanを取得する方法を書いて、applicationContext、getBean()を使います.
Integer型回転Long型 Integer回転Longタイプは、基本タイプのように自動的にアップグレードすることはできません メソッド:まずStringタイプに変換し、さらにLong.valueof(String)でLongタイプ に変換する
Javaの現在のクラス名とメソッドの取得 Thread を使用 getClass(インスタンスオブジェクトのみ) を使用
SpringBoot RedisTemplate注入失敗実は私が注入に失敗した原因はクラスにRedisTemplateを注入したからですが、私はnewの形式で作成したので、これは明らかにだめですが、ネット上のRedisTeplate注入に失敗した他の原因があるのを見て、後で間違いを避けるために、まず記録して を勉強しました.依存を導入すると、2つのRedisTemplate が自動的に注入されます.しかし、我々が一般的に注入するタイプはString、Objectであり、明らかに公式はこのBeanの作成を助けていないが、我々の一般的な導入方法は である.特定のタイプを指定しない場合は、 にインポートできます. RedisTemplate注入時に@Autowiredが使用され、@Autowiredはデフォルトでタイプ別にアセンブリされます.つまり、RedisTemplateのBeanを取得するには、名前に合わせて組み立てる必要があります.では、@Resourceを使用したいのは当然ですが、デフォルトでは名前で組み立てられています.コードを変更できます: もう一つの方法は、自分でString、ObjectタイプのRedisTemplate を書くことです.
System.currentTimeMillis()普段はnew Date()で時間を取得していますが、単純にミリ秒数を取得するとSystem.currentTimeMillis()の性能がよくなります. System.currentTimeMillis()このミリ秒数は1970年1月1日0時からのミリ秒数で、Date()は実はDate(System.currentTimeMillis()に相当する) System.currentTimeMillis()現在の時刻を取得
今日出勤する時、いくつかの穴を踏んで、まず彼を一つ一つ覚えて、勉強と見なしました.
アプリケーションコンテキスト
package com.xiaoxiao.current_limiting.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
applicationContext
applicationContext
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
/**
, new @Autowared , Bean
*/
public static <T> T getBean(Class<T> c) {
return (T) applicationContext.getBean(c);
}
}
Integer型回転Long型
Javaの現在のクラス名とメソッドの取得
String clazz = Thread.currentThread().getStackTrace()[1].getClassName();
String method = Thread.currentThread().getStackThread()[1].getMethodName();
String clazz = this.getClass().getName();//
SpringBoot RedisTemplate注入失敗
@Configuration
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
public class RedisAutoConfiguration {
// Object,Object
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
public RedisTemplate<Object, Object> redisTemplate(
RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
// String,String
@Bean
@ConditionalOnMissingBean
public StringRedisTemplate stringRedisTemplate(
RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
//
@Autowired
private RedisTemplate<String, Object> redisTemplate;
//
@Autowired
private RedisTemplate redisTemplate;
// ,
@Resource
private RedisTemplate<String, Object> redisTemplate;
System.currentTimeMillis()
long totalMillisSec = System.currentTimeMillis();//
long totalSec = totalMillisSec / 1000; //
//
long currentSec = totalSec % 60;
//
long totalMinutes = totalSec / 60;
long currentMinutes = totalMinutes % 60;
//
long totalHour = totalMinutes / 60;
long currentHour = totalHour % 24;