Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / что не так с @Inject / 15 сообщений из 15, страница 1 из 1
07.09.2018, 08:28
    #39699321
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
собственно вопрос:
реализован тестовый бин

Код: java
1.
2.
3.
4.
5.
@Stateless
public class MyBEAN implements MyBeanInterface {
    @PersistenceContext(unitName = "myUnit")
    private EntityManager entityManager;
...



есть некий сервлет
который работает
Код: java
1.
2.
3.
4.
5.
6.
7.
@WebServlet(name = "S", urlPatterns = "/s")
public class S extends HttpServlet {
    @Inject
    private MyBeanInterface mbi;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Amount datas>>>>>"+mbi.findLast24H().size());
    }



есть обычный класс на котором не работает
тут получаю нул
Код: java
1.
2.
3.
4.
5.
6.
7.
public class StChart {
    @Inject
    private MyBeanInterface mbi;

    public void sendChartWithStart() {
        System.out.println("MyBeanInterface StChart>> " + mbi);
    }




что не так?
...
Рейтинг: 0 / 0
07.09.2018, 08:46
    #39699330
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Обычный класс - не бин, контейнером не управляется. Dependency Injection контейнер о нём ничего не знает. Нужно сделать так чтобы контейнер знал про этот класс.
...
Рейтинг: 0 / 0
07.09.2018, 09:18
    #39699336
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Blazkowicz,

а что для этого требуется? аннотация в классе?
...
Рейтинг: 0 / 0
07.09.2018, 09:36
    #39699349
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Музаффара что для этого требуется? аннотация в классе?
Зачем использовать то что вы не понимаете?
...
Рейтинг: 0 / 0
07.09.2018, 09:42
    #39699357
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Blazkowicz,

конечно извините что задал такой нубский вопрос...

авторЗачем использовать то что вы не понимаете?
З.Ы. чтоб знать.


следовательно другой вопрос зачем ребенок начинает ходит если он на тот момент не знает как?
...
Рейтинг: 0 / 0
07.09.2018, 09:47
    #39699359
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Музаффарзачем ребенок начинает ходит если он на тот момент не знает как?
Ребёнок и инженер, в принципе, одно и то же?
...
Рейтинг: 0 / 0
07.09.2018, 09:59
    #39699368
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Blazkowicz,

конечно нет,
я привел пример чтоб сказать никто не рождается со знанием... и узнает все что нужное благодаря другим и т.д.

З.Ы. че то начали по философствовать ))))

З.Ы. может подскажете ту аннотацию? а то че то не нахожу или ищу не там где надо)...
...
Рейтинг: 0 / 0
07.09.2018, 12:04
    #39699511
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Музаффар,
Чтобы поместить класс в контейнер (сделать его бином), нужно следовать правилам того контейнера, который используете (spring, guice, picocontainer, java ee, и т.д.): в спринге, например есть context:component-scan с указанием package, который помещает все классы в том package в контейнер, в других контейнерах тоже обычно так можно.
Если автоскан не нужен или не работает, есть ряд аннотаций: @Component/@Service/@Repository в спринге, @Stateless/@Stateful/@WebServlet/@WebService/@ManagedBean и т.д. в Java EE (можете загуглить - в чем отличие). В спринге так же можно нужные классы регистрировать в context.xml. EJB-бины можно прописывать в vendor-specific way (например, в jboss'e - jboss-ejb3.xml).
...
Рейтинг: 0 / 0
07.09.2018, 12:06
    #39699514
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Немного не то сказал: в сприге нужно одновременно указать component-scan и добавить аннотацию @Component.
...
Рейтинг: 0 / 0
07.09.2018, 20:40
    #39699838
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
пробовал всякие варианты...

ни добавление к классу аннотаций @Named @RequestScoped

ни
Код: java
1.
2.
InitialContext ctx = new InitialContext();
MyBEAN mbi = (MyBEAN) ctx.lookup("myBean");



ни
Код: java
1.
@EJB(beanName = "MyBEAN")



и т.д. не помогли пока что...
...
Рейтинг: 0 / 0
07.09.2018, 21:49
    #39699844
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Blazkowicz, спасибо!
авторНужно сделать так чтобы контейнер знал про этот класс
с лукапом работает оказывается я не совсем правильно делал...
Код: java
1.
2.
InitialContext ctx = new InitialContext();
        MyBeanInterface mbi = (MyBeanInterface) ctx.lookup("java:module/myBean");



как это ещё можно сделать кроме как лукапа?
...
Рейтинг: 0 / 0
08.09.2018, 00:48
    #39699867
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Музаффар,
Попробуйте @EJB(lookup="your url")
...
Рейтинг: 0 / 0
12.09.2018, 13:08
    #39701422
sergpank
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
В Спринге чтобы @Inject сработало нужно добавить классу @Component или @Service.
Вам тоже нужно как-то пометить свой класс.
...
Рейтинг: 0 / 0
12.09.2018, 18:16
    #39701697
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
Ты класс инстанциируешь сам, как я понимаю, оператором new, контейнер этим классом не управляет и инъектить туда, само собой, не будет.
...
Рейтинг: 0 / 0
12.09.2018, 22:59
    #39701756
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что не так с @Inject
HettТы класс инстанциируешь сам, как я понимаю, оператором new, контейнер этим классом не управляет и инъектить туда, само собой, не будет.
В спринге можно юзать @Configurable (CTW или LTW).
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / что не так с @Inject / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]