`
zhaoshunxin
  • 浏览: 29935 次
  • 来自: 济南
社区版块
存档分类
最新评论

springmvc @Resource 注解方式问题

 
阅读更多

如下代码:在自动注入是采用 @Autowired 可以 但是为什么使用@Resource不行呢

在网上看了几个@Autowired和@Resource的区别 但还是不明白两个具体不同的配置

 

HelloController类


public class HelloController implements Controller{

 private Logger logger = Logger.getLogger(this.getClass().getName());
 private String helloWorld; // 该属性用于获取配置文件中的helloWorld属性
 private String viewPage;        // 用于获取配置文件中的viewPage属性
 @Autowired  为什么不能使用@Resource
 private HelloService helloService;
 @SuppressWarnings("unchecked")
 public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {             
  // 在该方法中处理用户请求
  Map model = new HashMap();
  model.put("helloWorld", getHelloWorld());
  String ss=helloService.getId();
  //model.put("id",helloService.getId());
  //req.setAttribute("ss",ss);
  // 将helloWorld属性存入model中
  res.getWriter().write(ss); 
  return null; 
  // 调用getViewPage获取要返回的页面
  }     
 public void setViewPage(String viewPage){         
  this.viewPage = viewPage;    
  }   
 public String getViewPage(){        
   return this.viewPage;     
  }     
 public void setHelloWorld(String helloWorld){   
   this.helloWorld = helloWorld;    
   }    
 public String getHelloWorld(){     
   return this.helloWorld;    
  }
 }

HelloDao类

@Repository
public 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 id asc limit 1 ";
   Map map =jt1.queryForMap(sql);
   System.out.println(""+map.get("id"));
   return map.get("id").toString();
   }

}

HelloService类


@Service
public class HelloService {
 @Autowired  为什么不能使用@Resource
 private HelloDao helleDao;
 
 
 @Cacheable(modelId="testCaching")
 public String getId(){
  helleDao.getId();
  return helleDao.getId();
  
 }
}
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
 
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:ehcache="http://www.springmodules.org/schema/ehcache"
 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-2.5.xsd
 http://www.springmodules.org/schema/ehcache
 http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-2.5.xsd
 " default-autowire="byName">
 
  <context:annotation-config/>
 <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
   <property name="dataSource">
    <ref local="dataSource" />
   </property>
 </bean>
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
   </property>
   <property name="url">
    <value>jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</value>
   </property>
   <property name="username">
    <value>root</value>
   </property>
   <property name="password">
    <value>root</value>
   </property>
  </bean>
  <context:component-scan base-package="test.t" ></context:component-scan>
  <ehcache:config configLocation="classpath:ehcache.xml" id="cacheProvider"/>
  <ehcache:annotations providerId="cacheProvider">
   <ehcache:caching cacheName="testCache" id="testCaching"/>
   <ehcache:flushing cacheNames="testCache" id="testFlushing" />
  </ehcache:annotations>
</beans>

 

 

dispatcherServlet-servlet.xml

 <?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.xsd">
 <bean id="localeResolver"
  class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver">
 </bean>
 <!--配置控制器的映射-->
 <bean id="urlMapping"
  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="helloWorld.do">helloWorldAction</prop>
   </props>
  </property>
 </bean>
 <!--配置视图-->
 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass">
   <value>
    org.springframework.web.servlet.view.InternalResourceView
   </value>
  </property>
 </bean>
 <!--指定控制器的实现类,并且配置其参数的值-->
 <bean id="helloWorldAction"
  class="test.t.HelloController">
  <property name="helloWorld">
   <value>Hello Spring World!</value>
  </property>
  <property name="viewPage">
   <value>sayHello.jsp</value>
  </property>
 </bean>
 <import resource="classpath:applicationContext.xml"/>
</beans>
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 </servlet>
  <servlet>
  <servlet-name>simpleservlet</servlet-name>
  <servlet-class>test.SimpleServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
  <servlet-mapping>
  <servlet-name>simpleservlet</servlet-name>
  <url-pattern>/simpeservlet</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>

分享到:
评论
2 楼 青春的、脚步 2013-04-10  
chen_yongkai 写道
@Resource
private HelloService helloService;

要定义以"helloService"为名称的bean


-----------------------------------------------
就这个区别?
1 楼 chen_yongkai 2011-09-07  
@Resource
private HelloService helloService;

要定义以"helloService"为名称的bean

相关推荐

    spring框架的@Resource和@Component 程序和文档

    在Spring框架中,`@Resource`和`@Component`是两个重要的注解,它们用于不同的目的,但都与依赖注入(Dependency Injection,简称DI)息息相关。理解这两个注解的使用和区别是掌握Spring框架核心概念的关键。 首先...

    springmvc常用注解标签详解

    在本文中,我们将详细地解释 SpringMVC 中常用的注解标签,包括@Controller、@RequestMapping、@Resource 和@Autowired 等。 1. @Controller @Controller 是 SpringMVC 中最基本的注解之一,该注解用于标记一个类...

    springMVC-annotation注解介绍

    @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。 1、共同点 两者都可以写在字段和setter方法上。两者...

    SpringMvc注解详解

    【SpringMvc注解详解】 ...通过这些注解,SpringMVC 能够以声明式的方式处理 Web 请求,大大提高了开发效率,同时也使得代码更加清晰和模块化。了解并熟练运用这些注解,是成为 SpringMVC 开发者的必备技能。

    SpringMVC全注解配置

    9. **资源处理**:Spring MVC提供`@ResourceMapping`注解,用于处理静态资源或RESTful服务。 10. **类型转换**:`@InitBinder`注解可以自定义数据绑定的行为,例如设置日期格式或限制输入字段的长度。 全注解配置...

    SpringMVCmybatisFrm:SpringMVC + MyBatis + Maven @Resource

    总结,SpringMVCmybatisFrm项目利用SpringMVC处理Web请求,MyBatis进行数据操作,Maven管理依赖和构建流程,`@Resource`注解实现依赖注入。这样的组合为Java Web开发提供了一套强大的解决方案,让开发者能够专注于...

    springMVC详解以及注解说明

    本篇文章将深入探讨SpringMVC的基础概念、工作原理及其核心注解的应用方式。 #### SpringMVC简介 SpringMVC是一个基于Spring框架的轻量级Web应用框架,它实现了MVC设计模式。MVC(Model-View-Controller)模式将...

    springMVC注解解释

    这两个注解分别标识在bean初始化后和销毁前需要执行的方法,提供了一种在生命周期中执行特定逻辑的方式。 10. **@Repository**: `@Repository`注解用于标记数据访问组件,如DAO。它将异常转换为Spring的...

    Spring注解 - 52注解 - 原稿笔记

    在火狐中显示可能会有问题,大家都是程序员,改个参数就好啦 注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before ,...

    基于注解的springMVC的demo

    ### 基于注解的SpringMVC Demo详解 #### 概述 本文将详细介绍一个基于注解的SpringMVC示例项目,该示例涵盖了从环境搭建到具体功能实现的全过程。通过这个示例,我们可以了解到如何在SpringMVC框架下使用注解来简化...

    springmvc注解.docx

    - 方式二:使用`@ComponentScan`注解,指定包名,Spring会自动扫描指定包及其子包下的`@Controller`注解类。 2. **@RequestMapping**:这个注解用于将HTTP请求映射到控制器的方法。可以在类级别和方法级别使用,类...

    创建xml和注解方式开发springmvc

    Spring MVC XML和注解方式开发详解 一、Spring MVC简介 Spring MVC是一种基于Java的Web应用框架,属于Spring Framework的一部分。它提供了一个灵活的、模块化的Web应用开发方式,能够与其他Spring Framework模块...

    SpringMVC讲义.docx

    4. **强化注解使用**:SpringMVC 大力支持注解,如`@Controller`、`@Service`、`@Autowired`或`@Resource`,使得在Controller、Service、Dao层可以方便地使用注解,增强了代码的灵活性和可读性。 **SpringMVC执行...

    SpringMvc_RestfullAPI

    1. **注解驱动编程**:SpringMvc中的注解如`@RestController`、`@RequestMapping`、`@GetMapping`、`@PostMapping`等,使得开发者能以声明式的方式定义路由和HTTP方法映射,大大简化了代码。 2. **模型和视图**:`@...

    spring注解实现注入.zip

    在Spring框架中,注解注入是一种非常常用且强大的依赖注入(Dependency Injection,简称DI)方式。依赖注入是Spring的核心特性之一,它允许开发者在不直接创建对象的情况下,将依赖关系从对象代码中分离出来,提高了...

    java的ssm框架中的SpringMVC的学习笔记课件

    例如,使用 `@Controller` 注解定义控制器,`@Service` 创建业务对象,以及 `@Autowired` 或 `@Resource` 注解进行依赖注入。 【SpringMVC 执行流程】 1. 用户发送 HTTP 请求,被前端控制器 DispatcherServlet ...

Global site tag (gtag.js) - Google Analytics