2015-08-25 2 views
0

Как сделать экземпляр java класс с параметрами и использовать один и тот же экземпляр через приложение?Конкретный пример/Non Singleton

Что я хочу сделать, когда tibco esb запрашивает вызов веб-службы для моего приложения, я буду захватывать информацию пользователя (имя пользователя) в одном классе pojo, чтобы я мог использовать этот класс pojo и информацию о пользователе в других местах в приложении также для этого конкретного запроса tibco.

Этот вопрос может показаться сумасшедшим, но я хотел бы реализовать что-то подобное в своем приложении. Подумайте о своих ребятах.

+0

Является ли это однопоточным приложением или многопоточным приложением? –

+0

однопоточное приложение –

+2

Как это * не * синглтон? – m02ph3u5

ответ

1

Вы можете использовать ThreadLocal решения:

public class MyClassInstanceHolder { 
    private static ThreadLocal<MyClass> instance = new ThreadLocal<>(); 

    public static setInstance(MyClass instance) { 
     instance.set(instance); 
    } 
    public static MyClass getInstance() { 
     instance.get(); 
    } 
} 
... 
MyClass myInstance = MyClassInstanceHolder.getInstance(); 

Таким образом, в этом потоке вы будете иметь доступ к объекту, хранящемуся в этом ThreadLocal.

+0

Для вышеупомянутого решения, нужно ли мне каждый раз ссылаться на OtherClass? Я имею в виду, если мне нравится использовать экземпляр MyClass в каком-то другом классе, тогда мне также понадобится создать экземпляр OtherClass (класс WebServiceImpl в моем случае)? –

+0

Ну, нет, это всего лишь пример, который я сделал быстро. У вас может быть два статических метода: один для установки другого для get, поэтому вам не нужно создавать экземпляр класса. Я собираюсь обновить пример. –