请教下关于SSH框架中@Repository/@Service/@Controller注入的问题!

问题描述

各位大大,请问个问题:我在持久层、业务层和控制层中分别使用@Repository/@Service/@Controller这样意义和直接全部使用@Component有什么区别呢? 问题补充:myali88 写道

解决方案

兄弟 那说明我刚才给你说的那个配置 应该是没问题的 这个问题应该是解决了的。
解决方案二:
我刚才之所以让你 前面加个resource这个东西 是因为你说是同目录,后来发觉肯定是你们头把这个目录和src目录都可以被映射成同一级 相对目录,所以让你改成这样。应该没问题了。
解决方案三:
在你的web-inf下看看,到底你的spring配置文件在哪里,然后再在web.xml上配置好。实在不行,直接把配置移到classes里面。
解决方案四:
这次保证没问题了。
解决方案五:
绝对是配置文件的路径有问题。我猜想你把resource也和src是配成一个的。<context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/applicationContext.xml</param-value></context-param>你改成我这样 应该没问题了。
解决方案六:
我看你已经把spring的日志级别开到INFO了,但是却没有看到加载xml相关的日志。正常情况应该有:2011-08-24 17:29:53,250 [main] INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from URL [file:/D:/TDDOWNLOAD/springside-3.3.4/examples/mini-web/target/classes/applicationContext.xml]类似于这样的日志啊。
解决方案七:
你的日志已经说明问题了,正常情况下应该有下面的日志:Bean factory for Root WebApplicationContext: org.springframework.beans.factory.support.DefaultListableBeanFactory@1f8d0a4: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,accountManager,userDao,roleDao,authorityDao,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.security.web.PortMapperImpl#0,org.springframework.security.web.context.HttpSessionSecurityContextRepository#0,org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy#0,org.springframework.security.authentication.ProviderManager#0,org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler#0,org.springframework.security.access.vote.AffirmativeBased#0,org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0,org.springframework.security.web.access.DefaultWebInvocationPrivilegeEvaluator#0,org.springframework.security.authentication.AnonymousAuthenticationProvider#0,org.springframework.security.web.savedrequest.HttpSessionRequestCache#0,org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint#0,org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0,org.springframework.security.config.http.UserDetailsServiceInjectionBeanPostProcessor#0,org.springframework.security.filterChainProxy,org.springframework.security.authentication.dao.DaoAuthenticationProvider#0,org.springframework.security.authentication.DefaultAuthenticationEventPublisher#0,org.springframework.security.authenticationManager,userDetailsService]; root of factory hierarchy但现在你的日志里面显示:org.springframework.beans.factory.support.DefaultListableBeanFactory@13c6a22: defining beans []; root of factory hierarchy spring根本没有发现bean的定义。是不是配置文件还是有问题。
解决方案八:
引用尝试了一下。。依旧。。您说会不会是我的applicationContext没有识别到呢?。。。有可能,你从日志上能看到你的Service被创建了吗?
解决方案九:
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/resources/applicationContext.xml</param-value></context-param>改成这样的试试
解决方案十:
引用这样还是抛出控指针异常,并提示UserInfoService为Null这个个说明你注入不成功。你可以尝试在声明Service采用:@Service("myMovieFinder")public class MovieFinder { // ...}这样在Action注入是通过Resource引用名字来注入:public class SimpleMovieLister { @Resource(name="myMovieFinder") private MovieFinder movieFinder;}类似这样的做法。
解决方案十一:
@Autowired private UserInfo userInfo; 貌似这个东西注入是多余的吧
解决方案十二:
另外你可以通过spring日志看看你定义的Service,dao等类是否都创建了,因为默认情况下单例Bean不会延迟创建的。如果你通过注解声明的Bean都创建了,那就是注入Bean的地方出错了。
解决方案十三:
<context:annotation-config/> 这个可以不需要,因为<context:component-scan base-package="">已经隐含激活了。引用Note: This tag implies the effects of the 'annotation-config' tag, activating @Required, @Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and @PersistenceUnit annotations in the component classes, which is usually desired for autodetected components (without external configuration). 应该是其他的问题,你是怎么注入Service,贴出来看看。
解决方案十四:
你需要加上context的命名空间就可以了,像这样:<?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config/> </beans>还有就好就是你所有声明Bean的注解(@Repository、@Service 和 @Controller )的类都必须在org.yourpackage包下面。
解决方案十五:
引用为什么Action中我用@Autowired注入Service的时候还是没有注入进去呢就是一使用Service就报NullPointException,Service是空的。 要使用@Autowired需要开启下面的配置:<context:annotation-config/>你加了没有?
解决方案:
你的applicationContext.xml里面需要配置<context:component-scan base-package="org.yourpackage" />才能完成自动注入org.yourpackage是你统一放的java文件
解决方案:
引用嗯那么我在DAO和SERVICE中该用哪个注解呢?都是@Service么? 因为我比较菜刚开始认识注入,还有就是现在注入遇到点问题,我的Application-context.xml中配置了: <context:component-scan base-package="com.hexun.dataManager"/> 然后Action配置了@Controller/Service和DAO配置了@Service/实体类里面配置了@Repository,为什么Action中我用@Autowired注入Service的时候还是没有注入进去呢就是一使用Service就报NullPointException,Service是空的。 DAO,一般用@Repository,它这一层是数据的入口和出口,对数据库最基本的操作,有时候我们注解这个类,更多的是对它有个数据库操作的管理,比如你继承了spring自己的hibernateDAo这样的东西,那怎么给你注入一些数据库操作的元素了,就靠它了,所以这个不是随便注释的。而service采用@service注解,因为service我们知道,需要对事务进行控制对吧,那么怎么办到了,肯定得统一用注解来标识,才能办到。你那种配置方法配置错了。标准配置方法是:pojo:配置@Entity@Table(name = "ACTE_BMSZ", schema = "HB_TALENTS")dao:配置@Repositoryservice配置@Component
解决方案:
ls正解
解决方案:
@Repository、@Service 和 @Controller。在目前的 Spring 版本中,和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中可能会为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
解决方案:
引用@Repository/@Service/@Controller这样意义和直接全部使用@Component有什么区别呢? 没什么差别,差别只是在语义上,@Repository/@Service/@Controller分别代表了特定语义的类,这个有点类似于HTML 5提出的语义化标签,你说HTML 5里面的“header”和“div”有什么差别呢,其实功能上来说没有,只是语义表达的更清楚。

时间: 2024-10-26 11:54:25

请教下关于SSH框架中@Repository/@Service/@Controller注入的问题!的相关文章

ssh整合-SSH框架中Spring的依赖注入问题

问题描述 SSH框架中Spring的依赖注入问题 我做了一个struts+hibernate3+spring的整合,我applicationContext .xml文件中已经配置了 <bean id=""loginAction"" class=""com.web.LoginAction""><property name=""userDao"" ref="&qu

在SSH框架中使用Spring的好处(转)

  以下是我总结下今天笔试中SSh中的总结: 在SSH框架中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)    struts负责控制Service(业务逻辑处理类),从而控

关于java问题-java ssh框架中的问题

问题描述 java ssh框架中的问题 For这点过不去,all有值 解决方案 还是ssh框架下的问题呢!关于ssh框架乱码问题SSH框架常见问题 解决方案二: For里面的哪一行过不去? 解决方案三: 前面print(all)改为打印其长度size,看看all这个列表长度是否非零呢? 解决方案四: 直接try,,catch捕获,,看报的什么异常

SSH框架中使用&amp;amp;lt;s:file&amp;amp;gt;标签的问题

问题描述 SSH框架中使用<s:file>标签的问题 请问下代码 <s:file name="file" id="fileName"></s:file> <input class="btn" type="submit" value="导入" /> 这么写得到的"file"是文件路径么? 解决方案 安全问题客户端路径是不会提交的,会得到一个c

ssh框架中 新起线程使用hibernate

问题描述 ssh框架中 新起线程使用hibernate 项目为ssh框架,现有需求: 项目启动时启动一个定时执行任务,处理相关逻辑. 我 希望在定时执行任务中使用hibernate,请问该如何弄 ,请大神指教.. 解决方案 spring的定是处理 建一个类继承QuartzJobBean 你执行hibernate的dao 重写executeInternal方法里面放你的逻辑 解决方案二: 自己顶一下 ,别沉,.....

网站推送-求一份在SSH框架中可用的pushlet消息推送的源代码。新手求参考。

问题描述 求一份在SSH框架中可用的pushlet消息推送的源代码.新手求参考. 新手求助!!!求一份可以在SSH框架中可以用的pushlet代码,或者说一下思路也行.这个网站http://www.cnblogs.com/siyu/p/3811454.html?utm_source=tuicool&utm_medium=referral上说的SessionManager.getInstance().initApplicationContext(ctx);这个代码我写得时候是错误的,没有init那

sql query-J2EE SSH框架中 hibernate映射文件hbm.xml相关问题

问题描述 J2EE SSH框架中 hibernate映射文件hbm.xml相关问题 使用hbm.xml文件时,有遇到一个标签,在标签中我只要HQL语句加上小于<号MyEclipse就提示错误,那我该如何添加小于号呢,请问大家是怎么回事,如何解决? 具体如下图 解决方案 需要转义的. < > 分别表示 < 和 >! 如果还有其他的,可以查看CSDN移动问答 解决方案二: 打开方式的问题 在MyEclipse的资源树里右击该文件,"Open as"选择合适的方

ssh 框架中jasperreport应用 求实例

问题描述 有在用jasperReport在ssh框架中做报表吗求学习资料!和jasperreport实例可以发到我的邮箱903810246@qq.com希望学习的过程中,可以多多交流!

求问ssh框架中jsp页面传给action指定方法,action无法自动获取

问题描述 求问ssh框架中jsp页面传给action指定方法,action无法自动获取,jsp中name也指定了,action无法get到textfiled传进去的值 解决方案 解决方案二:是struts2吗?具体贴代码把,如果textfiled设置成disabled也是不传值得解决方案三:引用1楼ltyisangel的回复: 是struts2吗?具体贴代码把,如果textfiled设置成disabled也是不传值得 readonly是可以传值的解决方案四:你在方法里面request.getPa