springmcv @Resource 注解问题

问题描述

问题如 http://zhaoshunxin.iteye.com/blog/1166266请各位大侠给看看 问题补充:hellostory 写道

解决方案

==============================@Resource("helloService") public class HelloService(){ ... } 在类Class上的注解应该使用诸如@Service、@Controller、@Repository等,只有在引用实例的使用才使用注解@Resource,而且应该加上属性name(表示被引用资源的名称),即“@Resource(name="helloService")”所以,上面正确的写法应该是这样的:(创建一个名称为helloService的实例)@Service(name="helloService") public class HelloService(){ ... } 然后在Controller包中这样使用:(引用这个名称为helloService的实例)@Controllerpublic class HelloController{ Resource(name="helloService") private HelloService helloService; }==============================
解决方案二:
只要你注解配置没问题,完全可以使用。通常情况下,@Resource默认是按名称匹配的,按你的配置,它应该默认创建单例HelloService(主要H是大写的)通常情况下,我是这样写的:[color=red]@Service(name="helloService")[/color]public class HelloService {@Resource //为什么不能使用@Resourceprivate HelloDao helleDao;然后再Controller包中这样引用:public class HelloController implements Controller{private Logger logger = Logger.getLogger(this.getClass().getName());private String helloWorld; // 该属性用于获取配置文件中的helloWorld属性private String viewPage; // 用于获取配置文件中的viewPage属性@Resource //为什么不能使用@Resource [color=red]@Resource(name="helloService")[/color]private HelloService helloService;
解决方案三:
我试了一下:public class HelloController implements Controller{private Logger logger = Logger.getLogger(this.getClass().getName());private String helloWorld; // 该属性用于获取配置文件中的helloWorld属性private String viewPage; // 用于获取配置文件中的viewPage属性@Resource //为什么不能使用@Resourceprivate HelloService helloService;@Servicepublic class HelloService {@Resource //为什么不能使用@Resourceprivate HelloDao helleDao;@Repositorypublic class HelloDao { static ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");//得到数据源 private static DataSource ds=(DataSource) context.getBean("dataSource"); static JdbcTemplate jt1=(JdbcTemplate) context.getBean("jt"); public String getId(){ String sql =" select * from test order by code";Map map =jt1.queryForMap(sql);System.out.println(""+map.get("CODE"));return map.get("CODE").toString(); }}只是将DAO小改了一下,然后使用resource都是可以的。
解决方案四:
@Resource private HelloService helloService; 要定义以"helloService"为名称的bean

时间: 2024-11-08 17:43:37

springmcv @Resource 注解问题的相关文章

spring中用到了@Resource注解

问题描述 spring中用到了@Resource注解 在applicationContext配置文件中进行了配置context:annotation-config/context:annotation-config,我想问这个注解有解析器吗?在哪里? 解决方案 Spring @Resource注解Spring中@Resource注解的应用spring的annotation注解之@Resource

ssh配置时。在xml里配置注入sessionfactory失败。而用@Resource注解的方式配置成功

问题描述 ssh配置时.在xml里配置注入sessionfactory失败.而用@Resource注解的方式配置成功 ssh配置时.在xml里配置注入sessionfactory失败.而用@Resource注解的方式配置sessionfactory却可以成功.这是为什么? <!--配置报错--> public class BaseServiceImpl implements BaseServiceInter { @Resource private SessionFactory sessionF

java javax.annotation.Resource注解的详解_java

java 注解:java javax.annotation.Resource  当我们在xml里面为类配置注入对象时,会发现xml文件会越来越臃肿,维护起来很麻烦.这时候我们可以使用注解这种机制来为类配置注入对象.        Java为我们提供了 javax.annotation.Resource这个注解.        spring框架提供了org.springframework.beans.factory.annotation.Autowired.       一般情况下我们使用 jav

spring注入属性(@Resource注解配置),属性值为空,求指导啊!!!

问题描述 @Resource属性注入测试在java普通工程不是web工程applicationContext.xml配置<context:component-scanbase-package="cn.itcast"></context:component-scan>pojo类:User@ComponentpublicclassUser{privateStringusername;User(){username="shisi";System.o

注解,@Qualifier+@Autowired 和 @Resource

项目中,对于AOP的使用,就是通过用注解来注入的. 更改之前的注解,是使用:@Qualifier+@Autowired   但是,通过这样注解,在项目启动阶段,需要自动扫描的过程是非常缓慢的,项目的启动时间为:227756ms   227秒 可以说,算是缓慢了.更改任何一个问题,只要是需要重启的时候,都需要浪费很长的时间去等待项目的部署和重启. 今天,公司的架构师,更改了注解的方式, 使用:@Resource 然后,更改后项目的启动时间明显缩短了,项目的启动时间是:95696ms 95秒 可以说

springmvc-关于spring的注解@Resource

问题描述 关于spring的注解@Resource @Service public class UserServiceImpl implements UserService { } 这样写相当于在xml这样配置 <--bean id="userServiceImpl" class="com.aa.UserServiceImpl"> 那如果我加一个@Resource注解在类中呢: @Service public class UserServiceImpl

Spring注解 @Resource和@Autowired

@Resource和@Autowired两者都是做bean的注入使用.其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spring支持该注解的注入. 共同点 两者都可以写在字段和setter方法上.两者如果都写在字段上,就不需要写写setter方法. 如果将@requied或者@autowired写了set方法之上,则程序会走到set方法内部.但如果写在了field之上,则不会进入set方法当中. 不同点 @Autowir

Spring 2.5的新特性:配置简化和基于注解的功能

简介 从诞生之初,Spring框架就坚守它的宗旨:简化企业级应用开发,同时给复杂问题提供强大的.非侵入性解决方案.一年前发布的Spring 2.0就把这些主题推到了一个新的高度.XML Schema的支持和自定义命名空间的使用大大减少了基于XML的配置.使用Java 5及更新版本java的开发人员如今可以利用植入了像泛型(generic)和注解等新语言特性的Spring库.最近,和AspectJ表达式语言的紧密集成,使得以非侵入方式添加跨越定义良好的Spring管理对象分组的行为成为可能. 新发

Java Spring各种依赖注入注解的区别

Spring对于Bean的依赖注入,支持多种注解方式: @Resource  javax.annotation  JSR250 (Common Annotations for Java)    @Inject  javax.inject  JSR330 (Dependency Injection for Java)    @Autowired  org.springframework.bean.factory  Spring  直观上看起来,@Autowired是Spring提供的注解,其他几个