2013-07-09 2 views
0

Я разработал базовое приложение, содержащее 2 проекта. Первый из них является уровень данных, а второй представляет собой веб-приложение (MVC проект)@autowired Не работает весной MVC

слой данных содержит следующую

@Entity 
@Table(name="users") 
public class User implements Serializable { 
..... 
} 

public interface UserBase { 
..... 
    } 

    @Repository 
    public interface UserRepository extends JpaRepository <User, Long>{ 
    } 



    @Service 
    public class UserImpl implements UserBase { 
    private final UserRepository repository; 
    @Autowired 
    public UserImpl(UserRepository repository) { 
    this.repository = repository; 
    ...... 
    } 


    @RunWith(SpringJUnit4ClassRunner.class) 
    @ContextConfiguration("Config/applicationContext.xml") 
    public class testcase1 { 

    @Autowired 
private UserImpl userImpl; 

    @Test 
    public void test() { 
    ..... 
    UserImpl.save(user); 
    ..... 
    } 

веб-приложение @Controller общественного класса ManageUser {

@Autowired 
UserImpl userImpl; 

@RequestMapping("/addUser/") 
public ModelAndView addUser() { 
UserImpl.save(user); 
..... 
} 
} 

Когда я запускаю модульный тест, код преуспел и ошибок не обнаружено. Но когда я помещал выходной барабан из слоя данных в веб-приложение весны mvc в папку lib и добавлял ссылку на слой данных в сборной ванне, у меня есть сообщение об ошибке
Не удалось выполнить закачку автоуведомленных зависимостей; вложенное исключение org.springframework.beans.factory.BeanCreationException: Не удалось autowire поля: com.my.domin.impl.UserImpl

Примечания: Я использую Tomcat. Я использую текучие конфигурации:

<jpa:repositories base-package="com.sanatech.repository" /> 
    <context:component-scan base-package="com.my.repository"/> 
    <context:component-scan base-package="com.my.domin.impl"/> 
    <context:component-scan base-package="com.my.domin"/> 
    <context:component-scan base-package="com.my"/> 
    <context:component-scan base-package="com.my.manageuser.controller"/> 
    <tx:annotation-driven/> 
    <context:annotation-config /> 

Редактировать

, когда я отделил испытание блока в новый проект и добавил ссылку на банку данных слоя в ванне сборки я нашел такое же исключение.

ответ

0

Вы уверены, что это исключение is't воскресил из вашего TestCase:

public class testcase1 { 

    @Autowired 
private UserImpl userImpl; 

Вы можете явно указать имя боб в @Service аннотацию и использовать это имя в @Autowired, чтобы убедиться в правильной конфигурации.

+0

Я пробовал и нашел то же исключение – user2564640

Смежные вопросы