2010-09-17 12 views
19

में बीन इंजेक्ट कैसे करते हैं मैं वसंत (3.0 का उपयोग करके) के लिए कुछ नया हूं, इसलिए मुझे उम्मीद है कि एक आसान जवाब है। अगर मेरे पास नियंत्रक है जो @Controller और @RequestMapping के साथ एनोटेट किया गया है और मैं निर्भरता इंजेक्शन के माध्यम से एक संपत्ति सेट करना चाहता हूं, तो मैं ऐसा करने के लिए कैसे जा सकता हूं? नियंत्रक वर्ग को स्प्रिंग कॉन्फ़िगरेशन फ़ाइल में प्रकट होने की आवश्यकता नहीं है क्योंकि यह @Controller एनोटेशन के कारण स्वचालित रूप से उठाया जाता है।आप एक कंट्रोलर क्लास

उदाहरण नियंत्रक वर्ग:

package gov.wi.dnr.wh.web.spring; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
public class RehabHomeController { 
    private String xxx; 

    @RequestMapping(value="/rehab/home", method = RequestMethod.GET) 
    public String get() { 
    return "whdb.rehabhome"; 
    } 

    public String getXxx() { 
    return xxx; 
    } 

    public void setXxx(String xxx) { 
    this.xxx = xxx; 
    } 
} 

स्प्रिंग विन्यास:

<?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:mvc="http://www.springframework.org/schema/mvc" 
     xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
          http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
          http://www.springframework.org/schema/context 
         http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
    </bean> 

    <context:component-scan base-package="gov.wi.dnr.wh.web.spring"/> 
    <mvc:annotation-driven /> 

</beans> 

यह इसी रूप में काम करता है, लेकिन मैं "xxx" संपत्ति इंजेक्षन करना चाहते हैं। मैं इसे कैसे करूं? (@Inject आप भी उपयोग कर सकते हैं)

+0

देखें [एनोटेशन आधारित ऑटोवॉयरिंग का उपयोग करके वसंत निर्भरता इंजेक्शन] (http://opensourceforgeeks.blogspot.in/2015/11/spring- निर्भरता- इंजेक्शन-using.html) –

उत्तर

25
@Autowired 
private YourService yourServiceBean; 

बेशक

, YourService एक सेम के रूप में घोषित किया जाना है - या तो applicationContext.xml में, या एनोटेशन (उदाहरण के लिए @Service)

से आप चाहते हैं स्ट्रिंग गुण इंजेक्षन, आप @Value एनोटेशन का उपयोग कर सकते हैं:

@Value("${propName}") 
private String str; 

(उसके लिए आप wil मुझे PropertyPlaceholderConfigurer की आवश्यकता है)

+0

धन्यवाद। अगर मैं बस "हैलो" के मूल्य के साथ एक स्ट्रिंग इंजेक्ट करना चाहता था तो यह अनुप्रयोग Context.xml फ़ाइल में कैसे दिखेगा? – GriffeyDog

+0

@GriffeyDog अद्यतन – Bozho

+1

देखें, बिल्कुल सही! – GriffeyDog

संबंधित मुद्दे