Spring nie działa adnotacja @Autowired

0

Mam taki plik konfiguracyjny springa

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">


	<mvc:annotation-driven />
	<context:component-scan base-package="com.packt.webstore" />
	<mvc:resources  location="/resources/"  mapping="/resource/**"/>


	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/" />
		<property name="suffix" value=".jsp" />
	</bean>

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

	<bean id ="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<constructor-arg ref="dataSource"></constructor-arg>
	</bean>

	<bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="10240000"/>
	</bean>

</beans>

oraz taką klasę

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{


    @Autowired
    private JdbcTemplate jdbcTemplate;

}

niestety nie mogę wstrzyknąć obiektu JdbcTemplate to zmiennej jdbcTemplate :(

0

A jest jakiś powód dla tego masz zarówno konfiguracje xmlową jak i za pomocą klasy? Jesteś pewien że Spring w ogóle łyka oba konteksty?

0

Uczę się dopiero springa i korzystałem z ksiażek gdzie była omawiana konfiguracja xml-owa. Zapragnąłem po prostu skonfigurować Security aplikacja za pomocą konfiguracji javy :P To chyba się jakoś da zrobić nie?

Przecież jak są starsze projekty gdzie korzystało się z xmla to jakoś się to łączy z konfiguracją javovą, nie?

1

Przykład z http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html

	private JdbcTemplate jdbcTemplate;

    @Autowired
    public void setDataSource(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }
0

@shagrin, problem polega jak mam wziać Beana skonfigurowanego w pliku XML(pierwszy listening), i wstrzyknąć go do javovego pliku konfiguracyjnego Springa, bo tak po prostu nie chce tam zadziałąś adnotacka @Autowired.

0

@kolo625 serio z wyszukiwarką masz jakiś problem:

https://www.mkyong.com/spring/spring-mixing-xml-and-javaconfig/

0

@shagrin, nie mam problemów z wyszukiwarką. Okazało się, że coś nie tak było w Intellij bo nie pokazywało mi jakie Beany wstrzykuje. Kliknąłem opcję aby to naprawił i nagle wystarcza sama adnotacja @Autowired i strzekuje mi tego bean z id="dataSource" to pliku konfiguracyjnego Javy. Tak po prostu.

Dzięki tej adnotacji <context:component-scan base-package="com.packt.webstore" />

1 użytkowników online, w tym zalogowanych: 0, gości: 1