2015-11-29 1 views
-1

Как использовать определенные константы только один раз в классе вместо того, чтобы писать его индивидуально в методах?

class A 
 
{ 
 
m1() 
 
{ 
 
constant loading logic; 
 
} 
 
m2() 
 
{ 
 
constant loading logic; 
 
} 
 
} 
 

 
class B 
 
{ 
 

 
@Autowired A a; 
 

 
m3() 
 
{ 
 
a.m1(); 
 
a.m2(); 
 
} 
 

 
}

Для ясности постоянной нагрузки логики:

@Autowired 
 
private Environment env; //spring environment 
 
String accessKey = env.getProperty("aws_access_key"); 
 
String secretKey = env.getProperty("aws_secret_access_key");

У меня есть класс А, который имеет @Component пружины annotation.class А представляет собой @autowired свойство для другого класса B. класс A имеет 2 метода m1 и m2. класс B называет m1 и m2.

Я хочу, чтобы загрузить некоторые общие свойства (константы) и использовать эти константы в обоих m1 и m2.Is есть эффективный способ сделать это вместо повторения той же постоянной загрузки логики должны быть записаны в обоих методах m1 и м2?

+1

Действительно непонятно, что константы имеют отношение к чему-либо еще в этой точке. Если бы вы могли дать пример кода, демонстрирующего проблему, вам было бы намного легче помочь. –

+0

Это ключи доступа и другие ключи, которые необходимо установить как в m1, так и в m2. – chungunuvavaa

+1

Можете ли вы загрузить его в конструкторе класса A по умолчанию (без аргументов)? – TMG

ответ

0
@Component 
class A{ 
    String accessKey; 
    String secretKey; 

    @Autowired 
    public A(Environment env){ 
    accessKey = env.getProperty("aws_access_key"); 
    secretKey = env.getProperty("aws_secret_access_key"); 
    } 
    public void m1(){ 
    // whatever logic here 
    } 
    public void m2(){ 
    // whatever logic here 
    } 
} 
+0

, поэтому из класса B..i всегда нужно вызывать конструктор класса A (создавая объект каждый раз) перед вызовом m1 и m2? – chungunuvavaa

+0

nope, вы можете просто автопоследовать A в B и Spring, чтобы иметь возможность вызвать конструктор A – TMG

+0

oh wow дайте мне проверить это .. – chungunuvavaa