Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26

Spring аннотация Autowired

16.10.2016, 14:47. Показов 2549. Ответов 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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2016, 14:47
Ответы с готовыми решениями:

Spring Autowired Annotation
Ребята, че за нафиг, как это вообще работает?! Стандартный пример, напечатать HELLO_WORLD, для этого: 1. Класс MessageProvider ...

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

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

7
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
16.10.2016, 15:07
Чтобы 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
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
16.10.2016, 16:01  [ТС]
KuKu, вообще мне это надо использовать в сервлете и как в нем запустить контейнер, чтобы сработал autowired ?
0
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
16.10.2016, 16:37
Тогда гуглите примеры "spring mvc java config" или "spring boot". Самому запихивать спринг в сервлеты - это лишнее.
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.10.2016, 19:16
http://docs.spring.io/spring/d... annotation
1
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
18.10.2016, 17:00  [ТС]
KuKu, продолжу поиски своей решения своего вопроса, в любом случае спасибо за отзыв)

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

Решение

первая же ссылка по запросу autowired servlet
http://stackoverflow.com/quest... in-servlet
1
0 / 0 / 0
Регистрация: 13.07.2016
Сообщений: 26
19.10.2016, 19:37  [ТС]
Все, разобрался
Всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2016, 19:37
Помогаю со студенческими работами здесь

Spring Boot @Autowired в коллекцию
Здравствуйте! Подскажите, пожалуйста, у меня есть коллекция типа Cars, где Cars мой абстрактный класс, от этого класса есть много...

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

Autowired менеджера аутентификации в Spring Security Filter
Доброго дня! Интегрирую токеновую аутентификацию через Spring Security в уже существующий проект на Spring+Hibernate с конфигом в xml. ...

Spring - Как сделать Autowired в N объектах класса
Подскажите пожалуйста как правильно сделать. Есть класс ImagesPool, он создается через new и его всегда существует несколько экземпляров. В...

Аннотация
Хотелось бы услышать объяснение, для чего нужна аннотация, на простом языке. В литературе все довольно абстрактно написано и хотелось бы...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru