Ne pouvait pas autowire. Pas de haricots de type trouvé ...
pouvez-vous m'aider à résoudre pourquoi je ne peux pas autowire une classe??
classe UserDaoImpl:
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
@Override
public void addUser(User user) {
sessionFactory.getCurrentSession().save(user);
}
@Override
public List<User> getUsers() {
return sessionFactory.getCurrentSession().createSQLQuery("SELECT * FROM user").list();
}
}
je veux cette classe autowire dans d'autres classe:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao; //here is the error
@Override
public void addUser(User user) {
}
@Override
public List<User> getUsers() {
return null;
}
}
Contrôleur:
@Controller
public class UserController {
@Autowired
UserService userService;
String message = "This should be a list of users";
@RequestMapping("/user")
public ModelAndView showMessage() {
ModelAndView modelAndView = new ModelAndView("user");
modelAndView.addObject("message", message);
return modelAndView;
}
}
où peut être le problème? dois-je vous montrer plus de fichiers? merci.
EDIT: ok, donc c'est mon session-factory.xml fichier:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.connection.driver_class">org.postgresql.Driver</prop>
<prop key="hibernate.connection.url">jdbc:postgresql://localhost:8080/****</prop>
<prop key="hibernate.connection.username">****</prop>
<prop key="hibernate.connection.password">****</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="show_sql">true</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>model.User</value>
</list>
</property>
</bean>
</beans>
-classe Utilisateur est simple POJO qui est mappé avec mise en veille prolongée. Et peut-être web.xml peut nous aider 🙂
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
mvc-servlet-dispatcher.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
et je n'ai pas de applicationContext.xml fichier, peut-être cela peut être le problème, pouvez-vous m'aider?
Je vais ajouter une capture d'écran de mon projet et problème: http://screenshot.cz/75QVH/
Oui, bien sûr, de nous montrer votre configuration. Pourquoi attendez-vous à être autocâblés dans l'autre?
Et de montrer l'exception.
Montrez-nous votre
Et les noms de ces classes. Je soupçonne votre composant de balayage.
J'ai ajouté une capture d'écran avec les noms de paquets..
Et de montrer l'exception.
Montrez-nous votre
applicationContext.xml
fichier et mvc-dispatcher-servlet.xml
.Et les noms de ces classes. Je soupçonne votre composant de balayage.
J'ai ajouté une capture d'écran avec les noms de paquets..
OriginalL'auteur Charlie Harper | 2014-06-26
Vous devez vous connecter pour publier un commentaire.
Votre
@Repository
n'est pas détectée (scanné) par<context:component-scan base-package="controller" />
d'aller par ce que vous nous montrer. Mais nous aurions besoin de voir les paquets pour chaque classe. Le printemps dépend de vous dire ce que les paquets de regarder dans votre@Service
,@Controller
,@Repository
et@Component
.Ont un oeil à la façon de la composante de la numérisation des œuvres au printemps.
<context:component-scan base-package="controller" />
ensemble de<context:component-scan base-package="com.foo" />
et il doit ramasser vos classes de Dépôt.Oui je l'ai trouvé trop, merci, l'erreur a disparu, mais je suis toujours des exceptions qui commence par: org.springframework.les haricots.usine.BeanCreationException: Erreur lors de la création de haricots avec le nom "userController': Injection de autocâblés dépendances a échoué; nested exception est...
Besoin de voir votre contrôleur qui est maintenant où est ton problème. Aussi la trace de pile d'exception pourrait l'aider.
mon contrôleur est très simple, il suffit de montrer un message, parce qu'en fait ma base de données est vide et je veux configurer l'application de base, mais je l'ai ajouté à mon post, et voici plein de trace de pile: pastebin.com/tjfR1vMJ
Ressemble à de l'org.mise en veille prolongée.SessionFactory bean est manquant. Donc il semble que le session-factory.xml n'est PAS en cours de lecture. Vous pouvez le faire de deux façons, l'une consiste à importer session-factory.xml dans le mvc-servlet-dispatcher.xml ou tout simplement copier sessionFactory fève dans la mvc-servlet-dispatcher.xml fichier
OriginalL'auteur ebell
Ne pas imprimer @Autocâblés avant impression bean. sinon,le Pas de fèves de ... type de trouvé se produire
@Autowired
private ProjectRepository projectRepository;
OriginalL'auteur zhouyueyuedsf