С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
CopKubar
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
1

Spring аннотация Autowired

16.10.2016, 14:47. Просмотров 1070. Ответов 7
Метки нет (Все метки)

Всем, добрый день. Изучаю Spring недавно и соответственно столкнулся с некоторыми трудностями.
У меня есть фабрика, которая возвращает ДАО объекты - DaoFactory, я создал конфигурационный класс с бинами, возвращаемых объектов моей фабрики

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@Configuration
@ComponentScan(basePackages = "university.daoClasses")
public class ConfigFile {
 
    @Autowired
    DaoFactory daoFactory;
 
    @Bean
    public GenericDao<Student, Integer> studentDaoBean() throws UniversityException {
        return daoFactory.getStudentWithConnection(connectionBean());
    }
 
    @Bean
    public GenericDao<Subject, Integer> subjectDaoBean() throws UniversityException {
        return daoFactory.getSubjectWithConnection(connectionBean());
    }
 
    @Bean
    public GenericDao<Attend, Integer> attendDaoBean() throws UniversityException {
        return daoFactory.getAttendWithConnection(connectionBean());
    }
 
    @Bean
    public GenericDao<Rating, Integer> ratingDaoBean() throws UniversityException {
        return daoFactory.getRatingWithConnection(connectionBean());
    }
 
    @Bean
    public Connection connectionBean()throws UniversityException{
        return daoFactory.getConnection();
    }
 
}
Я без проблем могу получать бины из контекста по средствам метода getBean(), но я хочу, не возвращать бин методом, а воспользоваться автоматическим связыванием, я объявил поле Autowired с возвращаемым типом бина
Java
1
2
3
4
@Bean
    public GenericDao<Student, Integer> studentDaoBean() throws UniversityException {
        return daoFactory.getStudentWithConnection(connectionBean());
    }
И попытался попытался получить доступ к методам, но мне выкидывает ошибку Null Pointer Exception и вот в чем вопрос, как это правильно реализовать, что бы все работало корректно ?
Буду благодарен за помощь


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Component
public class Tes {
 
    @Autowired
    private GenericDao<Student, Integer>studentDao;
 
    public static void main(String[] args) throws UniversityException {
 
        Tes tes=new Tes();
        for (Student s: tes.getList()){
            System.out.println(s);
        }
    }
 
    public List<Student> getList() throws UniversityException {
            return studentDao.getAll();
    }
}
 
/*
Exception in thread "main" java.lang.NullPointerException
    at servlets.universityServlets.Tes.getList(Tes.java:25)
    at servlets.universityServlets.Tes.main(Tes.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
 
Process finished with exit code 1
*/
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2016, 14:47
Ответы с готовыми решениями:

[Spring] @Autowired сервиса
По ТЗ нельзя использовать mvc-фреймворков, но как я понимаю сам контейнер...

Spring Autowired Annotation
Ребята, че за нафиг, как это вообще работает?! Стандартный пример,...

Spring на клиенте и Autowired
У меня есть спринг на клиенте (так уж получилось), в spring-config есть список...

Spring и аннотации @Configuration & @Autowired
Здравствуйте! Не могу найти ответ на свой вопрос, подскажите возможно ли...

Spring - Как сделать Autowired в N объектах класса
Подскажите пожалуйста как правильно сделать. Есть класс ImagesPool, он...

7
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
16.10.2016, 15:07 2
Чтобы spring записал значение во внутрь поля с @Autowired, его надо вначале запустить. Должно быть что-то типа:
Java
1
2
3
4
5
public static void main(String[] args) throws UniversityException {
    ApplicationContext context = new AnnotationConfigApplicationContext(ConfigFile.class);
    Tes tes = context.getBean(Tes.class);
    List<Student> studentList = studentDao.getAll();
}
и public static void main лучше убрать из класса Tes.
1
CopKubar
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
16.10.2016, 16:01  [ТС] 3
KuKu, вообще мне это надо использовать в сервлете и как в нем запустить контейнер, чтобы сработал autowired ?
0
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
16.10.2016, 16:37 4
Тогда гуглите примеры "spring mvc java config" или "spring boot". Самому запихивать спринг в сервлеты - это лишнее.
1
xoraxax
1428 / 1352 / 402
Регистрация: 05.07.2013
Сообщений: 6,556
Завершенные тесты: 2
16.10.2016, 19:16 5
http://docs.spring.io/spring/docs/cu...ion-annotation
1
CopKubar
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
18.10.2016, 17:00  [ТС] 6
KuKu, продолжу поиски своей решения своего вопроса, в любом случае спасибо за отзыв)

Добавлено через 21 час 6 минут
Тему можно закрыть
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
18.10.2016, 18:28 7
Лучший ответ Сообщение было отмечено CopKubar как решение

Решение

первая же ссылка по запросу autowired servlet
http://stackoverflow.com/questions/11843690/autowiring-in-servlet
1
CopKubar
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
19.10.2016, 19:37  [ТС] 8
Все, разобрался
Всем спасибо
0
19.10.2016, 19:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2016, 19:37

SpringData и @Autowired
Я новичок в SpringFramework Я реализовал репозиторий для работы с таблицами...

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven....

задания по spring core и spring mvc для новичков
Какие задания можно предложить новичкам для выполнения после знакомства их с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru