Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Не может найти бин / 25 сообщений из 29, страница 1 из 2
17.05.2018, 17:41
    #39646291
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Заманался уже. Никак не могу понять почему не находит бин.

Есть такой сервис (Этот сервис вставляется в контроллер):

Код: 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.
@Service
public class ApplicationMailer {

    @Autowired
    private JavaMailSender mailSender;

    public ApplicationMailer() {}

    public void sendMail(String to, String subject, String body) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(body);
        mailSender.send(message);
    }

    public void sendHtml(String to, String subject, String body) throws MessagingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, false, "utf-8");
        mimeMessage.setContent(body, "text/html");
        helper.setTo(to);
        helper.setSubject(subject);
        mailSender.send(mimeMessage);
    }

}



Есть 3 .xml конфигурации:

MVC

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0" encoding="UTF-8"?>
<beans ...>

    <context:annotation-config />

    <mvc:annotation-driven />

    <tx:annotation-driven/>

    <context:component-scan base-package="com.site" />

    <mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" />

    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>



MAIL

Код: xml
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.
<?xml version="1.0" encoding="UTF-8"?>
<beans ...>

    <context:property-placeholder location="classpath:/mail/gmail.com.properties" ignore-unresolvable="true" />

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="javaMailProperties">
            <props>
                <prop key="mail.debug">true</prop>
                <prop key="mail.smtps.auth">${mail.smtps.auth}</prop>
            </props>
        </property>
        <property name="host" value="${mail.host}" />
        <property name="port" value="${mail.port}" />
        <property name="username" value="${mail.username}" />
        <property name="password" value="${mail.password}" />
        <property name="protocol" value="${mail.protocol}" />
    </bean>

    <!-- Шаблон письма -->
    <bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage">
        <property name="from" value="${mail.from}" />
        <property name="subject" value="Mail subject" />
    </bean>

</beans>



DB

Код: xml
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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<?xml version="1.0" encoding="UTF-8"?>
<beans ...>

    <context:annotation-config />
    <context:component-scan base-package="com.site.dao" />

    <context:component-scan base-package="com.site.service" />

    <tx:annotation-driven transaction-manager="transactionManager" />

    <context:property-placeholder location="classpath:db/mysql.properties" system-properties-mode="OVERRIDE"/>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.username}" />
        <property name="password" value="${database.password}" />
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
          p:packagesToScan="com.linkedcrm.entity" p:dataSource-ref="dataSource">
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
        <property name="jpaProperties">
            <props>

                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>

                <prop key="hibernate.show_sql">true</prop>

                <prop key="hibernate.initDB">true</prop>

                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>

                <prop key="logging.level.org.hibernate.SQL">DEBUG</prop>
                <prop key="logging.level.org.hibernate.type">TRACE</prop>

            </props>
        </property>
    </bean>

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

</beans>
...
Рейтинг: 0 / 0
17.05.2018, 17:46
    #39646294
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
При запуске выдает такое:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationMailer': Unsatisfied dependency expressed through field 'mailSender'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.mail.javamail.JavaMailSender' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

При чем если я уберу сервис и перенесу

Код: java
1.
2.
@Autowired
private JavaMailSender mailSender;



В сам контроллер то тоже будет ошибка.

Хотя в xml файле я бин прописал.

Что не так?
...
Рейтинг: 0 / 0
17.05.2018, 18:03
    #39646306
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
А 3 XML конфига это один контекст или 3 разных?
...
Рейтинг: 0 / 0
17.05.2018, 18:05
    #39646308
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
BlazkowiczА 3 XML конфига это один контекст или 3 разных?
Вот настройка в IDEA
...
Рейтинг: 0 / 0
17.05.2018, 18:36
    #39646320
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopЗаманался уже.откуда у тебя EJB появился?
...
Рейтинг: 0 / 0
17.05.2018, 18:38
    #39646321
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Petro123TsyklopЗаманался уже.откуда у тебя EJB появился?
В смысле?
...
Рейтинг: 0 / 0
17.05.2018, 18:40
    #39646324
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Tsyklop,
Ну понятие bin из ejb.
Без этого есть только сущности и POJO.
Может ты не туда забрел?
...
Рейтинг: 0 / 0
17.05.2018, 18:42
    #39646327
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Petro123Tsyklop,
Ну понятие bin из ejb.
Без этого есть только сущности и POJO.
Может ты не туда забрел?

Имею в виду bean из спринга.
...
Рейтинг: 0 / 0
17.05.2018, 18:54
    #39646329
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopИмею в виду bean из спринга.
Ждем профи с советом - есть ли спринг без бина и попроще.
От хибер API ты отказался, а сразу спринг орм и бины боюсь многовато)
...
Рейтинг: 0 / 0
17.05.2018, 18:55
    #39646330
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Petro123TsyklopИмею в виду bean из спринга.
Ждем профи с советом - есть ли спринг без бина и попроще.
От хибер API ты отказался, а сразу спринг орм и бины боюсь многовато)
??????????

почему отказался? откуда такая инфа?

Я как бы начал изучать спринг и хибер и на данный момент сейчас в проекте стоит хибер.
...
Рейтинг: 0 / 0
17.05.2018, 18:55
    #39646331
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
IntelliJ IDEA это среда разработки, а не исполнения. Как Spring находит ваши XML и как он создаёт контексты вы знаете?
Зачем вы вообще XML используете если можно на аннотациях или на Java конфиге?
...
Рейтинг: 0 / 0
17.05.2018, 18:59
    #39646333
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
BlazkowiczIntelliJ IDEA это среда разработки, а не исполнения. Как Spring находит ваши XML и как он создаёт контексты вы знаете?
Зачем вы вообще XML используете если можно на аннотациях или на Java конфиге?

Да мне бы на xml попробовать что это такое. Аннотации и так стоят в некоторых местах.

На счет моей проблемы - я внутри сервиса разместил bean для javaMailSender и все заработало.
Но вот почему-то у меня есть сомнения что это правильно.
...
Рейтинг: 0 / 0
17.05.2018, 19:01
    #39646334
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
BlazkowiczIntelliJ IDEA это среда разработки, а не исполнения. Как Spring находит ваши XML и как он создаёт контексты вы знаете?

Ну. Мы указываем спрингу xml файлы. Он их парсит и потом делает нужные операции. После xml парсит аннотации.
...
Рейтинг: 0 / 0
17.05.2018, 19:04
    #39646335
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Tsyklopпочему отказался? откуда такая инфа? тогда сделай за неделю проект без спринга на хибере.
А потом уже спринг JPA.
Иначе каша голове будет.
...
Рейтинг: 0 / 0
17.05.2018, 19:08
    #39646336
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Petro123Tsyklopпочему отказался? откуда такая инфа? тогда сделай за неделю проект без спринга на хибере.
А потом уже спринг JPA.
Иначе каша голове будет.

я не делаю тот проект, а другой - для обучения.
...
Рейтинг: 0 / 0
17.05.2018, 19:09
    #39646338
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
А как спрингу понять, что JavaMailSenderImpl можно использовать в качестве имплементации JavaMailSender ?
...
Рейтинг: 0 / 0
17.05.2018, 19:10
    #39646339
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Tsyklopпочему отказался? откуда такая инфа?
Из твоего топика.
21406817
Там пример без спринга.
...
Рейтинг: 0 / 0
17.05.2018, 19:15
    #39646343
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Petro123Tsyklopпочему отказался? откуда такая инфа?
Из твоего топика.
21406817
Там пример без спринга.
Этот тот самый обучающий проект. там есть спринг
...
Рейтинг: 0 / 0
17.05.2018, 19:15
    #39646344
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
HettА как спрингу понять, что JavaMailSenderImpl можно использовать в качестве имплементации JavaMailSender ?

JavaMailSenderImpl имплементирует JavaMailSender.
...
Рейтинг: 0 / 0
17.05.2018, 19:24
    #39646346
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopЭтот тот самый обучающий проект. там есть спринга нужно было делать spring JPA без бинов)).
Круто взял. Удачи!
...
Рейтинг: 0 / 0
17.05.2018, 19:39
    #39646349
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
Petro123а нужно было делать spring JPA без бинов)).Круто взял. Удачи!

Что лучше хибер или spring jpa?
...
Рейтинг: 0 / 0
17.05.2018, 19:46
    #39646351
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopPetro123а нужно было делать spring JPA без бинов)).Круто взял. Удачи!

Что лучше хибер или spring jpa?
Ни что не лучше.
Hibernate и EclipseLink это конечные реализации ORM.
JPA это JEE API для ORM через который можно работать как с Hibernate так и с EclipseLink и другими реализациями.
Spring Data это удобная обертка над JPA. Чтобы было удобно пользоваться.
...
Рейтинг: 0 / 0
17.05.2018, 19:58
    #39646353
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopЧто лучше хибер или spring jpa?
Главное преимущество JPA это подмена базы или хибера на link)))
Но в жизни это фантазии.
Поэтому я против jpa.
Изучай оба, но начни без спринга.
Такое imho.
...
Рейтинг: 0 / 0
17.05.2018, 20:00
    #39646354
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopЧто лучше хибер или spring jpa?и правильнее будет
Хибер api или ....
Т.к. под спринг JPA все равно хибер))))
...
Рейтинг: 0 / 0
18.05.2018, 11:11
    #39646584
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Не может найти бин
TsyklopPetro123а нужно было делать spring JPA без бинов)).Круто взял. Удачи!

Что лучше хибер или spring jpa?

Что то х**, что это х**. (с) не мой

ИМХО
Пока хватает spring-data-jpa можно использовать его.
Ибо магия и все дела.

Но как только его перестает хватать, то лучше сразу использовать SQL, например, через JdbcTemplate.
Hibernate это сильное колдунство и как оно работает "унутре" знать можно, но смысла особого нет.
Т.к. проще написать запрос на SQL, чем заставить Hiberntae сделать, то что нужно.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Не может найти бин / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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