{"id":1104,"date":"2024-06-30T12:52:08","date_gmt":"2024-06-30T04:52:08","guid":{"rendered":"http:\/\/www.spiceandwolf.com.cn\/?p=1104"},"modified":"2026-01-08T15:33:03","modified_gmt":"2026-01-08T07:33:03","slug":"ioc-and-di","status":"publish","type":"post","link":"http:\/\/www.spiceandwolf.com.cn\/index.php\/ioc-and-di\/","title":{"rendered":"springIOC\u548cDI"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">springIoc\uff08bean\u6807\u7b7e\uff09\u7684xml\u914d\u7f6e<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bean\u6807\u7b7e\u4f5c\u7528\u3002\u7528\u4e8e\u914d\u7f6e\u88abspring\u5bb9\u5668\u7ba1\u7406\u7684bean\u7684\u4fe1\u606f\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u8c03\u7528\u65e0\u53c2\u6784\u9020\u51fd\u6570\u3002<\/li>\n\n\n\n<li>bean\u6807\u7b7e\u5c5e\u6027\u3002\n<ul class=\"wp-block-list\">\n<li>id<\/li>\n\n\n\n<li>class<\/li>\n\n\n\n<li>init-method<\/li>\n\n\n\n<li>destroy-method<\/li>\n\n\n\n<li>scope\n<ul class=\"wp-block-list\">\n<li>singleton<\/li>\n\n\n\n<li>prototype<\/li>\n\n\n\n<li>request<\/li>\n\n\n\n<li>session<\/li>\n\n\n\n<li>global session<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>bean\u5b9e\u4f8b\u5316\u65b9\u5f0f\u3002\n<ul class=\"wp-block-list\">\n<li>\u65e0\u53c2\u6784\u9020\u51fd\u6570<\/li>\n\n\n\n<li>\u9759\u6001\u5de5\u5382<\/li>\n\n\n\n<li>\u5b9e\u4f8b\u5de5\u5382<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">springDI\u7684xml\u914d\u7f6e<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DI\u65b9\u5f0f\n<ul class=\"wp-block-list\">\n<li>\u6784\u9020\u65b9\u6cd5<\/li>\n\n\n\n<li>set\u65b9\u5f0f\n<ul class=\"wp-block-list\">\n<li>\u624b\u52a8\u88c5\u914d<\/li>\n\n\n\n<li>\u81ea\u52a8\u88c5\u914d\uff08\u6ce8\u89e3\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>DI\u6ce8\u5165\u7684\u7c7b\u578b\n<ul class=\"wp-block-list\">\n<li>\u7b80\u5355\u7c7b\u578b<\/li>\n\n\n\n<li>\u5f15\u7528\u7c7b\u578b<\/li>\n\n\n\n<li>\u96c6\u5408\u548c\u6570\u7ec4\u7c7b\u578b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">springIoc\u7684xml\u4e0e\u6ce8\u89e3\u6df7\u5408\u914d\u7f6e<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528\u65b9\u5f0f\n<ol class=\"wp-block-list\">\n<li>spring\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6econtext:component-scan\u6807\u7b7e<\/li>\n\n\n\n<li>\u5728\u7c7b\u4e0a\u9762\u52a0\u4e0a@Component\u3001@Controller\u3001@Service\u3001@Repository\u7b49\u6ce8\u89e3<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">springDI\u7684\u6ce8\u89e3\u914d\u7f6e<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>@Autowired\n<ul class=\"wp-block-list\">\n<li>\u9ed8\u8ba4\u6309\u7c7b\u578b\u88c5\u914d<\/li>\n\n\n\n<li>\u7531AutowiredAnnotationBeanPostProcessor\u7c7b\u5b9e\u73b0<\/li>\n\n\n\n<li>\u662fspring\u81ea\u5e26\u7684\u6ce8\u89e3<\/li>\n\n\n\n<li>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u8981\u6c42\u4f9d\u8d56\u5bf9\u8c61\u5fc5\u987b\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u9700\u8981\u7ed9\u5c5e\u6027\u8d4b\u503crequired=false\uff0c\u4e0d\u7136\u4f1a\u62a5\u9519<\/li>\n\n\n\n<li>\u6309\u540d\u79f0\u88c5\u914d\u9700\u8981\u914d\u5408@Qualifier\u6ce8\u89e3\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>@Qualifier\n<ul class=\"wp-block-list\">\n<li>\u5728\u81ea\u52a8\u6309\u7167\u7c7b\u578b\u88c5\u914d\u7684\u57fa\u7840\u4e4b\u4e0a\uff0c\u518d\u6309\u7167bean\u7684id\u6ce8\u5165<\/li>\n\n\n\n<li>\u5728\u7ed9\u5b57\u6bb5\u6ce8\u5165\u65f6\u4e0d\u80fd\u72ec\u7acb\u4f7f\u7528\uff0c\u5fc5\u987b\u914d\u5408@Autowired\u4e00\u8d77\u4f7f\u7528<\/li>\n\n\n\n<li>\u7ed9\u65b9\u6cd5\u53c2\u6570\u6ce8\u5165\u65f6\uff0c\u53ef\u4ee5\u72ec\u7acb\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>@Resource\n<ul class=\"wp-block-list\">\n<li>\u9ed8\u8ba4\u6309\u540d\u79f0\u88c5\u914d<\/li>\n\n\n\n<li>\u5c5e\u4e8eJ2EE JSR250\u89c4\u8303\u7684\u5b9e\u73b0\uff0c\u662fJava\u81ea\u5e26\u7684<\/li>\n\n\n\n<li>name\u5c5e\u6027\u4e00\u65e6\u6307\u5b9a\uff0c\u5219\u53ea\u4f1a\u6839\u636e\u540d\u79f0\u88c5\u914d<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>@Inject\n<ul class=\"wp-block-list\">\n<li>\u6839\u636e\u7c7b\u578b\u88c5\u914d\uff0c\u5982\u679c\u9700\u8981\u6309\u7167\u540d\u79f0\u88c5\u914d\uff0c\u9700\u8981\u914d\u5408@Named\u4f7f\u7528<\/li>\n\n\n\n<li>\u662fJSR330\u4e2d\u7684\u89c4\u8303\uff0c\u662fJava\u81ea\u5e26\u7684<\/li>\n\n\n\n<li>\u53ef\u4ee5\u7528\u5728\u53d8\u91cf\u3001setter\u65b9\u6cd5\u548c\u6784\u9020\u51fd\u6570\u4e0a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>@Value\n<ul class=\"wp-block-list\">\n<li>\u7ed9\u57fa\u672c\u7c7b\u578b\u548cString\u7c7b\u578b\u6ce8\u5165<\/li>\n\n\n\n<li>\u53ef\u4ee5\u4f7f\u7528\u5360\u4f4d\u7b26\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u4e2d\u7684\u503c<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>@PostConstruct<\/li>\n\n\n\n<li>@PreDestroy<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">springIoc\u7eaf\u6ce8\u89e3\u914d\u7f6e<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6539\u4e3a\u7eaf\u6ce8\u89e3\u65b9\u5f0f\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6cd5\n<ul class=\"wp-block-list\">\n<li>\u6ce8\u89e3\u626b\u63cf\u914d\u7f6e\u5982\u4f55\u5b9e\u73b0\u66ff\u6362\uff08&lt;context:component-scan&gt;\u548c&lt;context:property-placeholder&gt;\uff09\uff1f\u7528@ComponentScan\u6ce8\u89e3\u4fee\u9970\u88ab@Configuration\u4fee\u9970\u7684\u7c7b\uff0c\u5e76\u5728basePackage\u5c5e\u6027\u4e2d\u6307\u5b9a\u626b\u63cf\u7684\u5305\u8def\u5f84;\u7528@PropertySource\u6ce8\u89e3\u4fee\u9970\u88ab@Configuration\u4fee\u9970\u7684\u7c7b\uff0c\u5e76\u6307\u660e\u5c5e\u6027\u6587\u4ef6\u8def\u5f84\u3002<\/li>\n\n\n\n<li>\u7b2c\u4e09\u65b9\u4ee3\u7801\u4e0d\u80fd\u5728\u6e90\u4ee3\u7801\u4e0a\u76f4\u63a5\u4fee\u6539\uff08\u589e\u52a0\u6ce8\u89e3\uff09\uff0c\u8be5\u5982\u4f55\u6ce8\u5165\uff1f\u5728@Configuration\u914d\u7f6e\u6587\u4ef6\u7c7b\u91cc\u9762\u52a0\u5165\u8fd4\u56de\u76f8\u5e94\u7b2c\u4e09\u65b9\u5bf9\u8c61\u7684\u65b9\u6cd5\uff0c\u5e76\u7528@Bean\u6807\u7b7e\u4fee\u9970\u3002<\/li>\n\n\n\n<li>\u53bb\u6389xml\u540e\uff0c\u5982\u4f55\u521b\u5efaApplicationContext\uff1f@Configuration\u6ce8\u89e3\u4fee\u9970\u7684\u7c7b\u4f1a\u66ff\u4ee3xml\u6587\u4ef6\u4f5c\u4e3aspring\u4e0a\u4e0b\u6587\u914d\u7f6e\u5b58\u5728\u3002<\/li>\n\n\n\n<li>\u591a\u4e2a\u914d\u7f6e\u6587\u4ef6\u76f8\u4e92\u5f15\u7528\u95ee\u9898\u3002\u5728\u591a\u4e2a@Configuration\u7c7b\u4e92\u76f8\u5f15\u7528\u65f6\uff0c\u7528@Import\u4f5c\u4e3a\u6ce8\u89e3\u6307\u660e\u53e6\u4e00\u4e2a\u914d\u7f6e\u7c7b\u7684\u5730\u5740\u3002<\/li>\n\n\n\n<li>\u521b\u5efa\u7eaf\u6ce8\u89e3\u65b9\u5f0f\u4e0a\u4e0b\u6587\u5bb9\u5668\u3002\n<ul class=\"wp-block-list\">\n<li><code>ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfiguration.class);<\/code><br><code>UserService service = context.getBean(UserService.class);<\/code><br><code>service.saveUser();<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>springIoc\uff08bean\u6807\u7b7e\uff09\u7684xml\u914d\u7f6e springDI\u7684xml\u914d\u7f6e springIoc\u7684xml\u4e0e\u6ce8\u89e3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,85,84],"tags":[],"class_list":["post-1104","post","type-post","status-publish","format-standard","hentry","category-code","category-interview","category-spring"],"_links":{"self":[{"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/1104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1104"}],"version-history":[{"count":4,"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/1104\/revisions"}],"predecessor-version":[{"id":1627,"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/1104\/revisions\/1627"}],"wp:attachment":[{"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1104"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.spiceandwolf.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}