अपने कॉन्फ़िगरेशन [स्प्रिंग-बूट] में 'पैकेज' के बीन को परिभाषित करने पर विचार करें


108

मुझे निम्नलिखित त्रुटि प्राप्त हो रही है:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method setApplicant in webService.controller.RequestController required a bean of type 'com.service.applicant.Applicant' that could not be found.


Action:

Consider defining a bean of type 'com.service.applicant.Applicant' in your configuration.

मैंने यह त्रुटि पहले कभी नहीं देखी है लेकिन यह अजीब है कि @Autowire काम नहीं कर रहा है। यहाँ परियोजना संरचना है:

आवेदक इंटरफ़ेस

public interface Applicant {

    TApplicant findBySSN(String ssn) throws ServletException;

    void deleteByssn(String ssn) throws ServletException;

    void createApplicant(TApplicant tApplicant) throws ServletException;

    void updateApplicant(TApplicant tApplicant) throws ServletException;

    List<TApplicant> getAllApplicants() throws ServletException;
}

ApplicantImpl

@Service
@Transactional
public class ApplicantImpl implements Applicant {

private static Log log = LogFactory.getLog(ApplicantImpl.class);

    private TApplicantRepository applicantRepo;

@Override
    public List<TApplicant> getAllApplicants() throws ServletException {

        List<TApplicant> applicantList = applicantRepo.findAll();

        return applicantList;
    }
}

अब मुझे बस ऑटोवेयर आवेदक के लिए सक्षम होना चाहिए और उपयोग करने में सक्षम होना चाहिए, हालांकि इस मामले में यह तब काम नहीं कर रहा है जब मैं इसे अपने में कॉल करता हूं @RestController:

@RestController
public class RequestController extends LoggingAware {

    private Applicant applicant;

    @Autowired
    public void setApplicant(Applicant applicant){
        this.applicant = applicant;
    }

    @RequestMapping(value="/", method = RequestMethod.GET)
    public String helloWorld() {

        try {
            List<TApplicant> applicantList = applicant.getAllApplicants();

            for (TApplicant tApplicant : applicantList){
                System.out.println("Name: "+tApplicant.getIndivName()+" SSN "+tApplicant.getIndSsn());
            }

            return "home";
        }
        catch (ServletException e) {
            e.printStackTrace();
        }

        return "error";
    }

}

------------------------ अद्यतन 1 -----------------------

मैंने कहा

@SpringBootApplication
@ComponentScan("module-service")
public class WebServiceApplication extends SpringBootServletInitializer {

    @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(WebServiceApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(WebServiceApplication.class, args);
    }

}

और त्रुटि चली गई लेकिन कुछ भी नहीं हुआ। हालाँकि, जब मैंने टिप्पणी की कि मैं जोड़ने से पहले सब कुछ निपटने Applicantमें सक्षम था, तो मैं एक स्ट्रिंग वापस करने में सक्षम था , इस प्रकार मेरा काम कर रहा था, अब इसे छोड़ दिया जा रहा है। मैं अब बदसूरत ।RestController@ComponentScan()UIRestControllerWhitelabel Error Page

--------------------- अद्यतन 2 --------------------------- ---

मैंने बीन के आधार पैकेज को जोड़ा जो इसके बारे में शिकायत कर रहा था। त्रुटि पढ़ता है:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method setApplicantRepo in com.service.applicant.ApplicantImpl required a bean of type 'com.delivery.service.request.repository.TApplicantRepository' that could not be found.


Action:

Consider defining a bean of type 'com.delivery.request.request.repository.TApplicantRepository' in your configuration.

मैंने कहा @ComponentScan

@SpringBootApplication
@ComponentScan({"com.delivery.service","com.delivery.request"})
public class WebServiceApplication extends SpringBootServletInitializer {

    @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(WebServiceApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(WebServiceApplication.class, args);
    }

}

---------------------------- अपडेट 3 -------------------- -

जोड़ने:

@SpringBootApplication
@ComponentScan("com")
public class WebServiceApplication extends SpringBootServletInitializer {

अभी भी मेरी ApplicantImplकक्षा के बारे में शिकायत कर रहा हूं जो @Autowiresमेरे रेपो TApplicantRepositoryमें है।


आपकी एप्लिकेशन संदर्भ फ़ाइल कहां है? यदि आपके पास नहीं है, तो आप को देने के लिए विचार करना चाहिए स्प्रिंग की तरह एनोटेशन के साथ कुछ संकेत @ComponentScan सभी सेम उपलब्ध बनाने के लिए।
मारियो सेंटिनी

@MarioSantini कृपया अपडेट 1
माइक 3355

मुझे लगता है कि प्रत्येक अद्यतन के बाद त्रुटियों में परिवर्तन हुए थे? यदि संभव हो, तो अपनी परियोजना संरचना पोस्ट करें, और त्रुटि प्रत्येक मामले में लॉग / स्टैकट्रेस करती है .. यह जानने के लिए "क्यों" उन त्रुटि को "कुछ" के बजाय त्रुटि हुई, जिससे त्रुटि दूर हो गई। उन लोगों के लिए भी मददगार होगा जो समान मुद्दे पर भी आते हैं।
अमीन। एमएम

जवाबों:


201

यह हो सकता है क्योंकि परियोजना को अलग-अलग मॉड्यूल में तोड़ दिया गया है।

@SpringBootApplication
@ComponentScan({"com.delivery.request"})
@EntityScan("com.delivery.domain")
@EnableJpaRepositories("com.delivery.repository")
public class WebServiceApplication extends SpringBootServletInitializer {

5
ठंडा। मेरी परियोजना कई मॉड्यूल से विभाजित है। ComponentScan ने मेरी समस्या हल कर दी!
खलोफेलो मलोमा

ComponentScan एनोटेशन मेरे मुद्दे को हल करता है, लेकिन @EnableAutoConfiguration नहीं करता है
jpl

वास्तव में EnableAutoConfiguration कुछ वस्तुओं के लिए एक आधार "खोज पैकेज" को स्पष्ट रूप से परिभाषित करता है और रूट पैकेज का उपयोग करके भी आधारभूत विशेषता को निर्दिष्ट करने की आवश्यकता के बिना ComponentScan एनोटेशन का उपयोग करने की अनुमति देता है। और @SpringBootApplication एनोटेशन का उपयोग किया जा सकता है यदि आपका मुख्य वर्ग रूट पैकेज में है
jpl

1
इस समाधान ने मुझे संस्करण 2.0.4 में इस त्रुटि के साथ मदद की
मनु मुरलीधरन

2
हां, यह इस तथ्य के कारण है कि परियोजना अलग-अलग मॉड्यूल में टूट गई है। @EntityScanऔर @EnableJpaRepositoriesसही पैकेज नामों के साथ मेरे लिए काम किया।
आदि शिवशंकरन

51

एक मौका है ...
आप लापता हो सकते हैं @Service, @Repositoryअपने संबंधित कार्यान्वयन वर्गों पर टिप्पणी कर सकते हैं।


2
यह स्वीकृत उत्तर, सरल और बिंदु निर्धारण के लिए होना चाहिए। धन्यवाद।
रात 10:00

1
मेरे लिए काम किया। धन्यवाद।
ओकाफ़ोर टी कोसियो

1
धन्यवाद, मुझे @Repository एनोटेशन याद आ रहा था
सर्गोडेवा

1
हाँ यह उत्तर होना चाहिए। ऊपर दिए गए उत्तर बस मान रहे हैं कि स्कैन विफल हो गया, जो गलत है।
सुमित बडसरा

48

आपका आवेदक वर्ग स्कैन नहीं हुआ है ऐसा लगता है। डिफ़ॉल्ट रूप से सभी पैकेज जो कि आपने जिस कक्षा में रखे हैं, उसकी जड़ के साथ @SpringBootApplicationस्कैन किया जाएगा।

मान लीजिए कि आपकी mainकक्षा "WebServiceApplication" " com.service.something" में है, तो " com.service.something" के अंतर्गत आने वाले सभी घटक स्कैन किए जाते हैं, और " com.service.applicant" स्कैन नहीं किया जाएगा।

आप या तो अपने पैकेजों का पुनर्गठन कर सकते हैं जैसे कि "WebServiceApplication" एक रूट पैकेज के अंतर्गत आता है और अन्य सभी घटक उस रूट पैकेज का हिस्सा बन जाते हैं। या आप @SpringBootApplication(scanBasePackages={"com.service.something","com.service.application"})आदि को शामिल कर सकते हैं जैसे कि "सभी" घटकों को स्कैन किया जाता है और वसंत कंटेनर में आरंभ किया जाता है।

टिप्पणी के आधार पर अपडेट करें

यदि आपके पास कई मॉड्यूल हैं जो मावेन / ग्रेडल द्वारा प्रबंधित किए जा रहे हैं, तो सभी वसंत आवश्यकताओं को स्कैन करने के लिए पैकेज है। आप वसंत को "com.module1" को स्कैन करने के लिए कहते हैं और आपके पास एक और मॉड्यूल है जिसका मूल पैकेज "com.module2" के रूप में है, उन घटकों को स्कैन नहीं किया जाएगा। आप वसंत को "कॉम" स्कैन करने के लिए भी कह सकते हैं जो बाद में " com.module1." और " com.module2." सभी घटकों को स्कैन करेगा।


मेरी परियोजना संरचना अलग मॉड्यूल है। उदाहरण के लिए सेवाओं का अपना मॉड्यूल होगा और build.gradle। उन build.gradleमॉड्यूल नामों को dependenciesमुख्य विधि के साथ मॉड्यूल में जोड़ा जाता है । इसलिए जब आपने देखा @ComponentScan("module-service")कि मुझे लगा कि क्या काम करेगा। हालाँकि अंदर module-serviceएक पैकेज है। तो मेरा सवाल है कि ऐसा क्या लगेगा? क्या मैं सिर्फ पैकेज का नाम या मॉड्यूल का नाम या किसी भी तरह दोनों को नाम दूंगा?
17

यह महत्वपूर्ण नहीं है अगर पैकेज अलग-अलग मॉड्यूल में आते हैं। जिन पैकेजों में घटकों को स्कैन किया जाना चाहिए, उन्हें वसंत तक निर्दिष्ट किया जाना चाहिए। आप "ScanBasePackages" विशेषता में अपने सभी मॉड्यूल के सभी "रूट" पैकेज नाम दे सकते हैं .. और इसके सभी "पैकेज" जिनका उल्लेख किया जाना है, मॉड्यूल नहीं।
अमीन। एमएम

क्या आपने कहा और, त्रुटि दूर हो गई, लेकिन केवल एक और पैकेज के बारे में शिकायत करने के लिए। स्वाभाविक रूप से मैंने इसे सूची में जोड़ दिया लेकिन यह दूर नहीं जाएगी। मैंने इसे इस तरह लागू किया:@SpringBootApplication(scanBasePackages= {"com.delivery.service","com.delivery.request"})
माइक 3355

मैंने अभी-अभी किया है @SpringBootApplication(scanBasePackages= "com")और यह जेपीए भंडार के बारे में शिकायत कर रहा है। आपका बहुत बहुत धन्यवाद। मुझे नहीं पता था कि स्प्रिंग उन सभी पैकेजों को स्कैन कर लेगा जो यदि आप ऊपर करते हैं तो "com" से शुरू करें।
माइक 3355

23

मूल रूप से ऐसा तब होता है जब आपके पास "अन्य पैकेज" में आपका क्लास एप्लिकेशन होता है। उदाहरण के लिए:

com.server
 - Applicacion.class (<--this class have @ComponentScan)
com.server.config
 - MongoConfig.class 
com.server.repository
 - UserRepository

मैं Application.class में इसके साथ समस्या को हल करता हूं

@SpringBootApplication
@ComponentScan ({"com.server", "com.server.config"})
@EnableMongoRepositories ("com.server.repository") // this fix the problem

एक और कम सुरुचिपूर्ण तरीका है: सभी कॉन्फ़िगरेशन कक्षाओं को एक ही पैकेज में रखें।


2
वास्तव में, आपको @ComponentScanउपरोक्त परिदृश्य में निर्दिष्ट करने की आवश्यकता नहीं है। क्योंकि आपका Application.class(जिसमें @SpringBootApplicationएनोटेशन है) रखा गया com.serverहै, वैसे भी दोनों के लिए और com.server.configसाथ ही जड़ भी है com.server.repository
अमीन।

@ Ameen.M क्या मेरा सटीक सवाल है, क्यों यह अभी भी हल नहीं कर सकता है और इसका उपयोग करने वाले मोंगो रेपो के लिए स्पष्ट स्कैन की आवश्यकता क्यों है @EnableMongoRepositories?
कार्तिकेयन

10

मेरे मामले में मुझसे एक भयानक गलती हुई। मैंने @Serviceसर्विस इंटरफ़ेस पर रखा।

इसे ठीक करने के लिए, मैंने @Serviceसेवा फ़ाइल के कार्यान्वयन पर रखा और यह मेरे लिए काम किया।


मेरे लिए भी वैसा ही। धन्यवाद
Manta

7

यदि कोई बीन उसी पैकेज में है जिसमें वह @Autowired है, तो यह कभी भी इस तरह के मुद्दे का कारण नहीं होगा। हालाँकि, सेम डिफ़ॉल्ट रूप से विभिन्न पैकेजों से सुलभ नहीं हैं। इस समस्या को हल करने के लिए निम्न चरणों का पालन करें:

  1. अपने मुख्य वर्ग में निम्नलिखित आयात करें:
    import org.springframework.context.annotation.ComponentScan;
  2. अपने मुख्य वर्ग पर टिप्पणी जोड़ें:
@ComponentScan(basePackages = {"your.company.domain.package"})
public class SpringExampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringExampleApplication.class, args);
    }
}

5

मुझे लगता है कि आप @ रिपॉजिटरी के साथ अपनी रिपॉजिटरी एनोटेट करके इसे सरल बना सकते हैं, फिर यह स्प्रिंग फ्रेमवर्क द्वारा स्वचालित रूप से सक्षम हो जाएगा।


4

मेरे मामले में इन दो विकल्पों ने काम किया।

  1. में //@ComponentScan ({"myapp", "myapp.resources","myapp.services"}) शामिल भी पैकेज है जो धारण Application.classसूची में, या

  2. सीधे शब्दों में कहें @EnableAutoConfiguration; यह स्वचालित रूप से सभी वसंत फलियों को पहचानता है।


3

यह तब भी हो सकता है यदि आप लोम्बोक का उपयोग कर रहे हैं और आप फ़ील्ड के लिए @RequiredArgsConstructorऔर @NonNullफ़ील्ड जोड़ते हैं, लेकिन आपके कुछ फ़ील्ड को कंस्ट्रक्टर में इंजेक्ट नहीं किया जाना है। यह एक ही त्रुटि प्राप्त करने की संभावनाओं में से एक है।

पैरामीटर 0 के लिए एक प्रकार की बीन की आवश्यकता होती है जिसका नाम MissingBeanName नहीं मिला

मेरे मामले में त्रुटि ने मुझे बताया @NonNullकि आवेदन को ठीक करने के बाद नियंत्रक को क्या समस्या थी


3

मुझे स्प्रिंग बूट 2 के साथ अपने मावेन मल्टी-मॉड्यूल प्रोजेक्ट में परिचित समस्या का सामना करना पड़ा। यह समस्या उप मावेन मॉड्यूल में मेरे पैकेज के नामकरण से संबंधित थी।

@SpringBootApplication में बहुत सारे घटक शामिल हैं - जैसे @ComponentScan, @EnableAutoConfiguration, jpa-repositories, json-serialization वगैरह। और वह कॉम में @ComponentScan को जगह देता है। *******। अंतरिक्ष पैकेज संकुल का यह भाग। Com। *******। अंतरिक्ष सभी मॉड्यूल के लिए सामान्य होना चाहिए।

इसे ठीक करने के लिए:

  1. आपको सभी मॉड्यूल पैकेजों का नाम बदलना चाहिए। अन्य शब्द जो आपके पास सभी पैकेज में सभी मावेन मॉड्यूल में होने चाहिए - एक ही मूल भाग। उदाहरण के लिए - com। *******। अंतरिक्ष
  2. इसके अलावा, आपको अपना प्रवेश बिंदु इस पैकेज पर ले जाना होगा - com। *******। स्थान

2

मैंने एक उत्तर के लिए ऑनलाइन मांगा, लेकिन ऐसा लगता है कि मेरे मामले का कोई उचित समाधान नहीं है: बहुत शुरुआत में, सब कुछ इस प्रकार से काम करता है:

@Slf4j
@Service
@AllArgsConstructor(onConstructor = @__(@Autowired))
public class GroupService {
    private Repository repository;
    private Service service;
}

फिर मैं कुछ कैश करने के लिए एक नक्शा जोड़ने की कोशिश कर रहा हूं और यह इस प्रकार है:

@Slf4j
@Service
@AllArgsConstructor(onConstructor = @__(@Autowired))
public class GroupService {
    private Repository repository;
    private Service service;
    Map<String, String> testMap;
}

बूम!

Description:

Parameter 4 of constructor in *.GroupService required a bean of type 'java.lang.String' that could not be found.


Action:

Consider defining a bean of type 'java.lang.String' in your configuration.

मैंने हटा दिया @AllArgsConstructor(onConstructor = @__(@Autowired))और @Autowiredप्रत्येक repositoryको serviceछोड़कर और को छोड़कर Map<String, String>। यह पहले की तरह ही काम करता है।

@Slf4j
@Service
public class SecurityGroupService {
    @Autowired
    private Repository repository;
    @Autowired
    private Service service;
    Map<String, String> testMap;
}

आशा है कि यह मददगार हो सकता है।


2

आवेदन में एनोटेशन से नीचे जोड़ने के बाद इसने मेरे लिए काम किया:

@ComponentScan({"com.seic.deliveryautomation.mapper"})

मुझे निम्न त्रुटि मिल रही थी:

"प्रकार 1 के निर्माणकर्ता का पैरामीटर 1 प्रकार का मैपर जो पाया नहीं जा सकता है:



2

यदि आपको गलती से एक ही सेम को दो अलग-अलग वर्गों में परिभाषित किया गया है, तो आपको यह त्रुटि भी मिलेगी। मेरे साथ वही हुआ। त्रुटि संदेश भ्रामक था। जब मैंने अतिरिक्त बीन को हटा दिया, तो समस्या हल हो गई।


1
@SpringBootApplication
@MapperScan("com.developer.project.mapper")

public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

1

यह तब हो सकता है यदि @ सेवा वर्ग सार के रूप में चिह्नित है।


1

यदि आपकी क्लास की निर्भरता स्प्रिंग द्वारा प्रबंधित की जा रही है, तो यह समस्या तब हो सकती है जब हम अपने POJP क्लास के अंदर डिफ़ॉल्ट / खाली arg कंस्ट्रक्टर जोड़ना भूल गए।


1

यह किसी की मदद कर सकता है। मुझे वही समस्या थी, वही त्रुटि संदेश, वही सब कुछ। मैंने अन्य उत्तरों से समाधान की कोशिश की, तब तक मदद नहीं की जब तक मुझे एहसास नहीं हुआ कि मैं जिस बीन का उपयोग कर रहा हूं उसका नाम वही है जो वास्तव में निरंकुश हो चुका है। यह रिफ्लेक्टर के बीच में हुआ, इस प्रकार मुझे कक्षा का नाम बदलना पड़ा, जिसका परिणाम सकारात्मक रहा। चियर्स


1

मैंने उसी मुद्दे का सामना किया। Mongo DB रिपॉजिटरी की पहचान स्प्रिंग बूट द्वारा की गई थी, लेकिन यह रिपॉजिटरी इंटरफ़ेस के लिए बीन नहीं बना रहा था जिसने मोंगो रिपॉजिटरी को बढ़ाया।

मेरे मामले में मुद्दा "वसंत + आम" के लिए मावेन पोम में गलत संस्करण विनिर्देश था। मैंने कलाकृतियों के समूह आईडी को बदल दिया है और यह सब जादू की तरह काम करता है। स्प्रिंग बूट के रूप में किसी भी एनोटेशन की जरूरत नहीं थी।

मेरे समस्या समाधान के दौरान, मैं सभी समाधानों के लिए वेब पर खोज कर रहा था और महसूस किया कि यह समस्या वास्तव में परियोजना कॉन्फ़िगरेशन से संबंधित है, इस समस्या का सामना करने वाले किसी व्यक्ति को पहले अपने प्रोजेक्ट सेटअप की जांच करनी चाहिए और असफलता पर अधिक विवरण प्राप्त करने के लिए वसंत से डिबग को सक्षम करना चाहिए। जहां वास्तव में प्रक्रिया में, निर्माण विफल हो गया है।


0

मेरे मामले में यह त्रुटि दिखाई देती है क्योंकि मेरा आयात गलत था, उदाहरण के लिए, वसंत का उपयोग करके, आयात स्वचालित रूप से प्रकट होता है:

import org.jvnet.hk2.annotations.Service;

लेकिन मुझे जरूरत थी:

import org.springframework.stereotype.Service;

0

मेरे पास एक मामला था जहां मुझे रेस्टटेम्पलेट को एक सेवा वर्ग में इंजेक्ट करने की आवश्यकता थी। हालाँकि, RestTemplate सेवा वर्ग द्वारा नहीं उठाया जा सकता है। मैंने जो किया वह मुख्य अनुप्रयोग के रूप में एक ही पैकेज के तहत एक आवरण वर्ग बनाने के लिए है और घटक के रूप में आवरण को चिह्नित करें और इस घटक को सेवा वर्ग में स्वायत्त करें। समस्या सुलझ गयी। आशा है कि यह भी आप के लिए काम करता है


0

मेरी त्रुटि यह थी कि मैंने इसमें शामिल किया था:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>2.2.5.RELEASE</version>
</dependency>

के बजाय:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

0

मुझे लगता है, आप अपने RequestController में @Bean एनोटेशन याद कर रहे हैं

बीन को अपनी फ़ाइल में जोड़ें, इससे मेरी समस्या
हल हो गई जब मुझे यह समाधान मिल गया जब मैं ट्यूटोरियल से स्प्रिंग बूट सीख रहा था

private Applicant applicant;

@Bean 
public Applicant applicant() { 
    return new Applicant(); 
}

0

स्प्रिंग बूट डेटा को जोड़ना जेपीए स्टार्टर निर्भरता ने मेरे लिए समस्या को हल किया।

Maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>2.2.6.RELEASE</version>
</dependency>

Gradle

compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.2.6.RELEASE'

या आप यहां सीधे जा सकते हैं


यह वास्तव में इस मामले में लागू नहीं होता है। यह डेटाबेस के लिए कनेक्शन विवरण के लिए संकेत देता है (डेटा स्रोत को कॉन्फ़िगर करने में विफल: 'url' विशेषता निर्दिष्ट नहीं है और कोई एम्बेडेड डेटा स्रोत कॉन्फ़िगर नहीं किया जा सकता है।) ऐसी स्थिति में जहां मैं डेटाबेस के साथ बातचीत किए बिना मैन्युअल रूप से परीक्षण करना चाहता हूं, यह काम नहीं करेगा।
थॉमस ओकॉन्कोव

0

यदि आप उपयोग interfaceकरते हैं तो आप एनोटेशन के CrudRepository<Applicant,Long>साथ @Repositoryबढ़ा सकते हैं।


0

जब आप प्रति उदाहरण का उपयोग करते हैं तो समस्या भी सामने आ सकती है @EnableMongoRepositories(YOUR_MONGO_REPOSITORIES_PACKAGE) और बाद में आपने पैकेज का नाम बदल दिया या इसे दूसरी जगह स्थानांतरित कर दिया।

बहु-मॉड्यूल मावेन प्रोजेक्ट और स्प्रिंग बूट के भीतर बहुत बार इसका सामना किया


0

एक मौका है कि आप इंटरफ़ेस को लागू करने से पहले एक इंटरफ़ेस को अनधिकृत करने की कोशिश कर रहे हैं ।

उदाहरण समाधान:

    **HomeController.java**
    class HomeController{

      @Autowired
      UserService userService;
    .....
    }
----------------------------------------------------------------------
    **UserService.java** 
    public interface UserService {
        User findByUsername(String username);
    .....
    }
-----------------------------------------------------------------------
     **UserServiceImpl.java**
     @Service
     public class UserServiceImpl implements UserService{

         public User findByUsername(String username) {
           return userDao.findByUsername(username);
         }
        ....
      }

<i>This is not italic</i>, and [this is not a link](https://example.com)

0

थ्रेड रन विधि से @ प्रकार की तरह एनोटेशन प्रकार कॉन्फ़िगरेशन निकालें।

@Service, @Component

0

नीचे दिए गए प्रोजेक्ट संरचना को कॉन्फ़िगर करने का प्रयास करें:

मुख्य पैकेज के चाइल्ड पैकेज में सभी रेपो, सर्विस, पैकेज रखें:

package com.leisure.moviemax;  //Parent package
        
@SpringBootApplication
@PropertySource(value={"classpath:conf.properties"})
    
public class MoviemaxApplication implements CommandLineRunner {
        
package com.leisure.moviemax.repo; //child package

@Repository
public interface UsrRepository extends JpaRepository<UserEntity,String> {

0

याद दिलाएं कि वसंत दुनिया को स्कैन नहीं करता है, यह लक्षित स्कैनिंग का उपयोग करता है जिसका अर्थ है कि पैकेज के तहत सब कुछ जहां स्प्रिंगबूटेप्लिकेशन संग्रहीत है। इसलिए यह त्रुटि "आपके कॉन्फ़िगरेशन [स्प्रिंग-बूट] में टाइप 'पैकेज की एक बीन को परिभाषित करने पर विचार करें" दिखाई दे सकती है क्योंकि आपके पास एक अलग स्प्रिंगबूटेप्लिकेशन पैकेज में सेवाएं इंटरफेस हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.