বসন্ত: @ কম্পোনেন্ট বনাম @ বিয়ান


459

আমি বুঝতে পারি যে @Componentক্লাসপাথ স্ক্যানিং ব্যবহার করে এক্সএমএল শিমের সংজ্ঞা থেকে মুক্তি পাওয়ার জন্য এনটোটেশনটি 2.5 বসন্তে প্রবর্তিত হয়েছিল।

@Beanবসন্ত 3.0.০ এ প্রবর্তিত হয়েছিল এবং @Configurationএক্সএমএল ফাইল থেকে পুরোপুরি মুক্তি পেতে এবং এর পরিবর্তে জাভা কনফিগারেশন ব্যবহার করতে ব্যবহার করা যেতে পারে ।

@Componentটীকাগুলি প্রবর্তনের পরিবর্তে টীকাটি আবার ব্যবহার করা সম্ভব হত @Bean? আমার উপলব্ধি হ'ল চূড়ান্ত লক্ষ্য হ'ল উভয় ক্ষেত্রেই মটরশুটি তৈরি করা।


4
কনফিগারেশন ক্লাস বাদে কোথাও @ বিয়ান ব্যবহার করা যেতে পারে?
উইলা


@ উইলা হ্যাঁ, আছে। বলা হয় Lite mode। এবং এটি সুপারিশ করা হয় না। এখানে দেখুন: docs.spring.io/spring/docs/current/spring-framework-references/…
স্মাইক উইকিপিডিয়া

8
আমি এটিকে সংক্ষেপে বলব একটি পদ্ধতিটি @beanস্প্রিং শিমের একটি অনুকূলিতকরণের উদাহরণটি দিয়ে দেয়, যখন @componentএকটি শ্রেণির সংজ্ঞা দেয় যা পরে প্রয়োজনে বসন্ত আইওসি ইঞ্জিন দ্বারা ইনস্ট্যান্ট করা যেতে পারে।
সেবাস

উত্তর:


433

@Componentএবং @Beanদুটি বেশ ভিন্ন জিনিস করুন, এবং বিভ্রান্ত হওয়া উচিত নয়।

@Component(এবং @Serviceএবং @Repository) ব্যবহার করা হয় স্বয়ংক্রিয় সনাক্ত করতে এবং ক্লাসপাথ স্ক্যানিং ব্যবহার স্বয়ংক্রিয় কনফিগার মটরশুটি। টীকাগুলি বেন এবং শিমের মধ্যে একটি অন্তর্নিহিত ওয়ান-টু-ওয়ান ম্যাপিং রয়েছে (অর্থাত প্রতি ক্লাসে একটি বিন)। তারের নিয়ন্ত্রণ এই পদ্ধতির সাথে পুরোপুরি সীমাবদ্ধ, যেহেতু এটি সম্পূর্ণরূপে ঘোষণামূলক।

@Beanউপরের মত বসন্তকে স্বয়ংক্রিয়ভাবে না করা পরিবর্তে একটি একক শিম স্পষ্টভাবে ঘোষণা করতে ব্যবহৃত হয় । এটি শ্রেণীর সংজ্ঞা থেকে শিমের ঘোষণাকে ডুপ্লুপ করে দেয় এবং আপনাকে কীভাবে বেছে নেবেন ঠিক কীভাবে মটরশুটি তৈরি করতে ও তা কনফিগার করতে দেয়।

আপনার প্রশ্নের উত্তর দিতে ...

@Componentটীকাগুলি প্রবর্তনের পরিবর্তে টীকাটি আবার ব্যবহার করা সম্ভব হত @Bean?

অবশ্যই, সম্ভবত; তবে তারা তা পছন্দ করেন নি, যেহেতু দুটি বেশ আলাদা। জলরাশিতে আরও গোলমাল না করে বসন্তের ইতিমধ্যে যথেষ্ট বিভ্রান্তি রয়েছে।


3
সুতরাং আমি কেবল @Componentযখন স্বতঃশক্তির প্রয়োজন হয় তখন ব্যবহার করতে পারি ? দেখে মনে হচ্ছে এটি @Beanপ্রভাবিত করতে পারে না@Autowired
জেসকি

3
পরিষেবা ভিত্তিক শ্রেণীর জন্য '@ কম্পোনেন্ট' ব্যবহার করুন, '@ বিয়ান' ফ্যাক্টরি হিসাবে আরও বেশি দর্জি তৈরি বস্তু যেমন jdbc ডেটাসোর্স
জুনচেন লিউ

2
আপনি ব্যবহার করতে পারেন @Jaskey @Autowiredসঙ্গে @Beanযদি আপনার সাথে আপনার শিম বর্গ সটীক আছে@Configuration
starcorn

6
দুঃখিত তবে আমি আপনার ব্যাখ্যার একটি শব্দ বুঝতে পারি না। আপনি এটিকে স্পষ্টভাবে বুঝতে পেরেছেন তাই দয়া করে আপনি কি একটি স্পষ্ট ব্যাখ্যা লিখবেন বা উপযুক্ত ডকুমেন্টেশনের দিকে নির্দেশ করবেন?
অ্যালেক্স ওয়ার্ডেন

13
এখন যেহেতু আমি ধারণাটি বুঝতে পারি (অন্য লোকের উত্তরগুলি পড়ার মাধ্যমে), আপনার ব্যাখ্যাটি অর্থবোধ করে। যা আমাকে আরও আরও জানিয়েছে যে ইতিমধ্যে ধারণাগুলি বোঝে না এমন আপনার পক্ষে আপনার ব্যাখ্যাটি ভাল নয়।
অ্যালেক্স ওয়ার্ডেন

397

@ উপাদান উপাদান স্ক্যানিং এবং স্বয়ংক্রিয় তারের জন্য পছন্দনীয়

আপনার কখন বিয়ান ব্যবহার করা উচিত ?

কখনও কখনও স্বয়ংক্রিয় কনফিগারেশন একটি বিকল্প হয় না। কখন? আসুন কল্পনা করুন যে আপনি তৃতীয় পক্ষের লাইব্রেরিগুলি থেকে উপাদানগুলি ওয়্যার করতে চান (আপনার কাছে সোর্স কোড নেই যাতে আপনি @ সংমিশ্রণ সহ এর ক্লাসগুলি বর্ননা করতে পারেন না), সুতরাং স্বয়ংক্রিয় কনফিগারেশন সম্ভব নয়।

@Bean টীকা একটি বস্তু ফেরৎ যে বসন্ত আবেদন প্রেক্ষাপটে শিম হিসাবে নিবন্ধিত করা উচিত নয়। পদ্ধতির মূল অংশটি তৈরির জন্য যুক্তিটিকে দায়ী করে।


5
আমি মনে করি এটি সবচেয়ে সার্থক করে তোলে। আমি যদি বুঝতে পারি যে ক্লাস পদ্ধতিতে @Componentচলার সময় তারা সঠিকভাবে @Beanক্লাসে চলে যায় (যা শ্রেণীর সামগ্রীর উদাহরণ দেয়)।
জোকুল

182

আসুন বিবেচনা করি আমি কিছু গতিশীল অবস্থার উপর নির্ভর করে সুনির্দিষ্ট বাস্তবায়ন চাই। @Beanএই ক্ষেত্রে উপযুক্ত।

@Bean
@Scope("prototype")
public SomeService someService() {
    switch (state) {
    case 1:
        return new Impl1();
    case 2:
        return new Impl2();
    case 3:
        return new Impl3();
    default:
        return new Impl();
    }
}

তবে এটি করার কোনও উপায় নেই @Component


3
আপনি কিভাবে উদাহরণ ক্লাস কল?
পাওয়ারফ্লুয়ার 16

1
@PowerFlower এই পদ্ধতি একটি কনফিগারেশন ক্লাসে হওয়া উচিত, সঙ্গে সটীক@Configuration
Juh_

97

উভয় পদ্ধতির লক্ষ্য স্প্রিং পাত্রে লক্ষ্য প্রকার নিবন্ধন করে।

পার্থক্যটি হ'ল পদ্ধতিগুলির@Bean ক্ষেত্রে প্রযোজ্য , যেখানে প্রকারের ক্ষেত্রে প্রযোজ্য ।@Component

অতএব আপনি @Beanটীকাটি ব্যবহার করার সময় আপনি পদ্ধতির শরীরে উদাহরণ সৃষ্টি যুক্তি নিয়ন্ত্রণ করেন ( উপরে উদাহরণ দেখুন )। সঙ্গে @Componentটীকা তুমি পারবে না।


এক প্রকার কি?
জ্যাক ফুল

97
  1. @ কম্পোনেন্ট স্বয়ংক্রিয়ভাবে ক্লাসপাথ স্ক্যানিং ব্যবহার করে মটরশুটি সনাক্ত করে এবং এটি কনফিগার করে যেখানে @ বিয়ান স্প্রিংয়ে এটি স্বয়ংক্রিয়ভাবে না করার পরিবর্তে একটি একক শিমের ঘোষণা দেয়
  2. @Component decouple নেই বর্গ সংজ্ঞা যেখানে যেমন @Bean থেকে শিম ঘোষণা বিযুক্ত করে বর্গ সংজ্ঞা থেকে শিম ঘোষণা।
  3. @ কম্পোনেন্টটি একটি শ্রেণি স্তর বিশিষ্টতা যেখানে @ বিয়ান একটি পদ্ধতি স্তরের টিকা এবং পদ্ধতির নাম শিমের নাম হিসাবে পরিবেশন করে।
  4. @ সংযোগটি @ কনফিগারেশন টীকাতে ব্যবহার করার দরকার নেই যেখানে @ কনফিগারেশনের সাথে টীকাযুক্ত ক্লাসের মধ্যে @ বিয়ান টিকাটি ব্যবহার করতে হবে ।
  5. আমরা একটি শিম তৈরি করতে পারবেন না , একটি বর্গ @Component ব্যবহারের যদি বর্গ বাহিরে বসন্ত ধারক যেহেতু আমরা হয় একটি শিম তৈরি করতে পারেন যদি বর্গ উপস্থিত একটি বর্গ @Bean এমনকি ব্যবহারের বাহিরে বসন্ত ধারক
  6. @ কম্পোনেন্টের বিভিন্ন নিয়ন্ত্রণ যেমন @ নিয়ন্ত্রণকারী, @ রেপোসিটরি এবং @ সার্ভিসেস রয়েছে যেখানে @ বিয়ান এর কোনও বিশেষত্ব নেই

3
৪. আসলে @ বিয়ানটি অ-কনফিগারেশন শ্রেণিতে ঘোষণা করা যেতে পারে। এটি হালকা মোড হিসাবে পরিচিত
ভোপ্প

1
পয়েন্ট 5 সম্পর্কিত। আমি মনে করি আমরা বসন্তের পাত্রে ভিতরে একটি সিম রেখেছি। সুতরাং, প্রতিটি শ্রেণি বসন্তের ধারকের বাইরে। আমার ধারণা,
পঞ্চম

20

আমি প্রচুর উত্তর দেখতে পাচ্ছি এবং প্রায় সর্বত্র এর উল্লিখিত @ কম্পোমেন্টগুলি স্বয়ংক্রিয়করণের জন্য যেখানে উপাদানগুলি স্ক্যান করা হয়েছে এবং @ বিয়ান ঠিক সেই ডালটিকে আলাদাভাবে ব্যবহার করার ঘোষণা দিচ্ছে । আমাকে দেখতে দিন কিভাবে এটি ভিন্ন।

  • @Bean

প্রথমে এটির একটি পদ্ধতি স্তরের টিকা। দ্বিতীয়ত আপনি সাধারণত জাভা কোডে মটরশুটি কনফিগার করতে ব্যবহার করেন (আপনি যদি এক্সএমএল কনফিগারেশন ব্যবহার করেন না) এবং তারপরে এপ্লিকেশনকন্টেক্সটের গেটবিয়ান পদ্ধতিটি ব্যবহার করে কোনও শ্রেণি থেকে কল করুন। মত

 @Configuration
class MyConfiguration{
    @Bean
    public User getUser(){
        return new User();
    }
}

class User{
}



//Getting Bean 
User user = applicationContext.getBean("getUser");
  • @উপাদান

কোনও শিমের তালিকাভুক্ত করা কোনও বিশেষ শিম নয় general একটি শ্রেণি স্তরের টীকা এবং জাভা বা এক্সএমএল কনফিগারেশনের মাধ্যমে সমস্ত কনফিগারেশন স্টাফ এড়াতে ব্যবহৃত হয়।

আমরা এরকম কিছু পাই।

@Component
class User {
}

//to get Bean
@Autowired
User user;

এটাই . এটি সিমটি ইনস্ট্যান্ট করতে এবং ব্যবহারের জন্য সমস্ত কনফিগারেশন পদক্ষেপ এড়ানোর জন্যই চালু করা হয়েছিল।


5
আমি মনে করি আপনি ব্যবহার করার @Beanসময় অ্যাপ্লিকেশন কনটেক্সট থেকে ব্যবহারকারীর অবজেক্টটি পাওয়া জরুরি নয় । আপনি এখনও @Autowireশিমটি পেতে যেমন ব্যবহার করতে পারেন তেমন ব্যবহার করতে পারেন @Component@Beanঠিক তেমনই বসন্ত কনটেইনারটিতে বিন যোগ @Componentকরে। পার্থক্যটি নিম্নরূপ। 1. ব্যবহার করে @Bean, আপনি স্প্রিং কনটেইনারটিতে থার্ড পার্টি ক্লাস যুক্ত করতে পারেন। 2. ব্যবহার করে @Bean, আপনি রান-টাইমে একটি ইন্টারফেসের কাঙ্ক্ষিত বাস্তবায়ন পেতে পারেন (কারখানার নকশার প্যাটার্ন ব্যবহার করে)
অ্যান্ডি

20

আপনি @Beanআপনার স্প্রিং ফ্রেমওয়ার্ক অ্যাপ্লিকেশন প্রসঙ্গে একটি বিদ্যমান তৃতীয় পক্ষের বর্গ উপলব্ধ করতে ব্যবহার করতে পারেন ।

@Bean
public ViewResolver viewResolver() {

    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

    viewResolver.setPrefix("/WEB-INF/view/");
    viewResolver.setSuffix(".jsp");

    return viewResolver;
}

@Beanটীকাটি ব্যবহার করে , আপনি একটি তৃতীয় পক্ষের শ্রেণিটি @Componentএকটি বসন্ত বিন হিসাবে আবদ্ধ করতে পারেন (এটি নাও থাকতে পারে এবং এটি স্প্রিং ব্যবহার নাও করতে পারে)। এবং তারপরে একবার এটি মোড়ানো হয়ে গেলে এটি @Beanসিঙ্গলটন অবজেক্ট হিসাবে এবং আপনার স্প্রিং ফ্রেমওয়ার্ক অ্যাপ্লিকেশন প্রসঙ্গে উপলব্ধ context নির্ভরতা ইনজেকশন এবং ব্যবহার করে আপনি এখন সহজেই এই অ্যাপটি নিজের অ্যাপে ভাগ করতে / পুনরায় ব্যবহার করতে পারেন @Autowired

সুতরাং @Beanটীকাটি ভাবা হ'ল তৃতীয় পক্ষের ক্লাসগুলির জন্য একটি মোড়ক / অ্যাডাপ্টার। আপনি আপনার স্প্রিং ফ্রেমওয়ার্ক অ্যাপ্লিকেশন প্রসঙ্গে তৃতীয় পক্ষের ক্লাসগুলি উপলব্ধ করতে চান।

@Beanউপরের কোডটি ব্যবহার করে , আমি স্পষ্টভাবে একটি একক শিমের ঘোষণা করছি কারণ পদ্ধতির ভিতরে আমি স্পষ্টভাবে newকীওয়ার্ডটি ব্যবহার করে অবজেক্টটি তৈরি করছি । আমি প্রদত্ত শ্রেণীর ম্যানুয়ালি সেটার পদ্ধতিগুলিও কল করছি। সুতরাং আমি উপসর্গ ক্ষেত্রের মান পরিবর্তন করতে পারেন। সুতরাং এই ম্যানুয়াল কাজের স্পষ্ট সৃষ্টি হিসাবে উল্লেখ করা হয়। যদি আমি @Componentএকই শ্রেণীর জন্য ব্যবহার করি তবে স্প্রিং পাত্রে নিবন্ধিত শিমের উপসর্গের ক্ষেত্রটির জন্য ডিফল্ট মান থাকবে।

অন্যদিকে, যখন আমরা কোনও শ্রেণি টিকা দিয়ে থাকি তখন @Componentম্যানুয়ালি newকীওয়ার্ডটি ব্যবহার করার দরকার নেই । এটি স্প্রিংয়ের মাধ্যমে স্বয়ংক্রিয়ভাবে পরিচালিত হয়।


1
এই উত্তরটি কীভাবে সেই
শিমটিও

সোর্স কোড পরিবর্তন করার অনুমতি না দিলে আপনি কীভাবে একটি তৃতীয় পক্ষের ক্লাসের উপরে একটি @ বিয়ানকে গুটিয়ে রাখবেন?
ভেরিটাস

16

আপনি যখন @Componentট্যাগটি ব্যবহার করেন , এটি ভোনিলা শিমের ঘোষণার পদ্ধতির সাথে একটি পোজো (সমতল ওল্ড জাভা অবজেক্ট) থাকার সমান @Bean। উদাহরণস্বরূপ, নিম্নলিখিত পদ্ধতি 1 এবং 2 একই ফলাফল দেবে।

পদ্ধতি 1

@Component
public class SomeClass {

    private int number;

    public SomeClass(Integer theNumber){
        this.number = theNumber.intValue();
    }

    public int getNumber(){
        return this.number;
    }
}

'দ্য নাম্বার' এর জন্য শিমের সাথে:

@Bean
Integer theNumber(){
    return new Integer(3456);
}

পদ্ধতি 2

//Note: no @Component tag
public class SomeClass {

    private int number;

    public SomeClass(Integer theNumber){
        this.number = theNumber.intValue();
    }

    public int getNumber(){
        return this.number;
    }
}

উভয় জন্য মটরশুটি সঙ্গে:

@Bean
Integer theNumber(){
    return new Integer(3456);
}

@Bean
SomeClass someClass(Integer theNumber){
    return new SomeClass(theNumber);
}

পদ্ধতি 2 আপনাকে শিমের ঘোষণাগুলি একসাথে রাখতে দেয়, এটি কিছুটা নমনীয় ইত্যাদি You

@Bean
SomeClass strawberryClass(){
    return new SomeClass(new Integer(1));
}

10

মটরশুটি উত্পন্ন করার জন্য আপনার কাছে দুটি উপায় রয়েছে। একটি হ'ল একটি টিকা দিয়ে ক্লাস তৈরি করা @Component। অন্যটি হ'ল একটি পদ্ধতি তৈরি করা এবং এটির সাথে এ্যানোটেট করা @Bean। এই ক্লাসগুলির সাথে @Beanমেথডযুক্ত ক্লাসগুলির সাথে এ্যানোটেট করা উচিত @Configuration একবার আপনি আপনার বসন্ত প্রকল্পটি চালানোর পরে, একটি @ComponentScanটীকা সহ ক্লাসটি এতে প্রতিটি ক্লাস স্ক্যান করে @Component, এবং এই শ্রেণীর উদাহরণটি আইওসি কনটেইনারটিতে পুনরুদ্ধার করে। আরেকটি কাজটি @ComponentScanহ'ল @Beanএটির সাথে পদ্ধতিগুলি চালানো এবং শিম হিসাবে আইওসি কনটেইনারটিতে ফিরতি বস্তু পুনরুদ্ধার করা। সুতরাং যখন আপনার বর্তমান রাজ্যের উপর নির্ভর করে কোন ধরণের মটরশুটি আপনি তৈরি করতে চান তা যখন আপনাকে স্থির করা দরকার তখন আপনাকে ব্যবহার করা দরকার@Bean। আপনি যুক্তিটি লিখতে পারেন এবং যে জিনিসটি চান তা ফিরে আসতে পারেন। আরেকটি বিষয় উল্লেখযোগ্য যা হ'ল পদ্ধতির @Beanনাম হ'ল শিমের ডিফল্ট নাম।


6
  • @ কম্পোনেন্ট এবং এর বিশেষত্ব (@ নিয়ন্ত্রণকারী, @ সংরক্ষণ, @ রিপোসিটোরি) ক্লাসপথ স্ক্যানিং ব্যবহার করে স্বতঃ-সনাক্তকরণের অনুমতি দেয়। আমরা যদি কন্ট্রোলার, @ সার্ভিস, @ রিপোসিটরির মতো উপাদান শ্রেণি দেখতে পাই তবে উপাদান স্ক্যান ব্যবহার করে বসন্তের কাঠামো দ্বারা স্বয়ংক্রিয়ভাবে স্ক্যান করা হবে।
  • অন্যদিকে @ বিন শুধুমাত্র একটি কনফিগারেশন ক্লাসে স্পষ্টভাবে একটি একক শিম ঘোষনা করতে ব্যবহার করা যেতে পারে।
  • @ বিয়ানটি স্প্রিংয়ে একটি একক শিমের ঘোষনা করত, বসন্তকে স্বয়ংক্রিয়ভাবে না করিয়ে দেওয়ার চেয়ে। এটি শ্রেণীর সংজ্ঞা থেকে শিমের সেপ্টেট ঘোষণা দেয়।
  • সংক্ষেপে @ কন্ট্রোলার, @ সার্ভিস, @ রিপোসিটিরি অটো-ডিটেকশন এবং @ বিয়ান ক্লাস থেকে বিচ্ছিন্ন শিম তৈরি করার জন্য
    - @ নিয়ন্ত্রণকারী
    পাবলিক ক্লাস লগইনকন্ট্রোলার 
    {- কোড -

    - @কনফিগারেশন
    পাবলিক ক্লাস অ্যাপকনফিগ {
    @Bean
    পাবলিক সেশনফ্যাক্টরি সেশন কারখানা () 
    {- কোড -

3

সংকলনযুক্ত সময়ে বসন এবং আপনার ব্যবসায়ের নিয়ম সংযোজন এড়াতে @ বিয়ান তৈরি করা হয়েছিল। এর অর্থ আপনি প্লেফ্রেমওয়ার্ক বা জেইই এর মতো অন্যান্য ফ্রেমওয়ার্কগুলিতে আপনার ব্যবসায়ের নিয়মগুলি পুনরায় ব্যবহার করতে পারেন।

তদুপরি, শিম কীভাবে তৈরি করা যায় তার উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে, যেখানে এটি যথেষ্ট পরিমাণে ডিফল্ট স্প্রিং ইনস্ট্যান্টেশন নয়।

আমি এটি নিয়ে কথা বলে একটি পোস্ট লিখেছি।

https://coderstower.com/2019/04/23/factory-methods-decoupling-ioc-container-abstraction/


3

বিন এবং উপাদানগুলির মধ্যে পার্থক্য:

বিন এবং উপাদানগুলির মধ্যে পার্থক্য


1

১.কমম্পোনেন্ট সম্পর্কে @ কম্পোনেন্ট
@ কনফিগারেশনের অনুরূপ ফান্ট করে।

তারা উভয়ই নির্দেশ করে যে টীকায়িত শ্রেণিতে এক বা একাধিক মটরশুটিতে নিবন্ধিত হওয়া দরকার Spring-IOC-Container

ক্লাবটি @ কমপিউন্টেন্ট দ্বারা টীকাযুক্ত, আমরা এটি কল করি Component of Spring। এটি এমন একটি ধারণা যা বেশ কয়েকটি মটরশুটি ধারণ করে।

Component classচাহিদা স্বয়ংক্রিয় স্ক্যান যারা মটরশুটি নিবন্ধনের জন্য স্প্রিং থাকতে component class

২. বিয়ান
@ বিয়ান সম্পর্কেcomponent-class (উপরে উল্লিখিত হিসাবে) এর পদ্ধতিটি বর্ননা করতে ব্যবহৃত হয় । এটি নির্দেশ করে যে এনটোটেড পদ্ধতিতে পুনরুদ্ধার হওয়া দস্তাবেজে নিবন্ধভুক্ত হওয়া দরকার Spring-IOC-Container

৩. উপসংহার
তাদের উভয়ের মধ্যে পার্থক্য তুলনামূলকভাবে উদাসীন, তারা ব্যবহৃত হয় different circumstances। সাধারণ ব্যবহার হ'ল:

    // @Configuration is implemented by @Component
    @Configuration
    public ComponentClass {

      @Bean
      public FirstBean FirstBeanMethod() {
        return new FirstBean();
      }

      @Bean
      public SecondBean SecondBeanMethod() {
        return new SecondBean();
      }
    }

0

উপরের উত্তরগুলি থেকে অতিরিক্ত পয়েন্ট

ধরা যাক আমরা একটি মডিউল পেয়েছি যা একাধিক অ্যাপ্লিকেশনগুলিতে ভাগ করা হয় এবং এতে কয়েকটি পরিষেবা রয়েছে। প্রতিটি অ্যাপ্লিকেশনের জন্য সমস্ত প্রয়োজন হয় না।

যদি অ্যাপ্লিকেশনটিতে সেবার ক্লাসগুলিতে এবং উপাদান স্ক্যানে @ কমপিউন্ডেট ব্যবহার করেন,

আমরা প্রয়োজনের চেয়ে বেশি শিম সনাক্ত করতে পারি

এই ক্ষেত্রে, আপনাকে হয় উপাদান স্ক্যানের ফিল্টারিং সামঞ্জস্য করতে হবে বা এমন কনফিগারেশন প্রদান করতে হবে যা অব্যবহৃত শিমও চালাতে পারে। অন্যথায়, অ্যাপ্লিকেশন প্রসঙ্গটি শুরু হবে না।

এক্ষেত্রে @ বিয়ান টীকাগুলির সাথে কাজ করা ভাল এবং কেবল সেই মটরশুটিগুলি কেবল তাত্ক্ষণিক করে তোলা,

যা প্রতিটি অ্যাপে স্বতন্ত্রভাবে প্রয়োজনীয়

সুতরাং, মূলত, প্রসঙ্গে তৃতীয় পক্ষের ক্লাস যুক্ত করার জন্য @ বিয়ান ব্যবহার করুন। এবং @ কম্পোনেন্টটি যদি এটি আপনার একক অ্যাপ্লিকেশনটির অভ্যন্তরে থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.