{"id":1704,"date":"2022-01-05T16:07:38","date_gmt":"2022-01-05T08:07:38","guid":{"rendered":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=1704"},"modified":"2022-01-05T16:19:33","modified_gmt":"2022-01-05T08:19:33","slug":"springbean%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f","status":"publish","type":"post","link":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=1704","title":{"rendered":"springbean\u751f\u547d\u5468\u671f"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"1024\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-896x1024.png\" alt=\"\" class=\"wp-image-1706\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-896x1024.png 896w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-262x300.png 262w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-768x878.png 768w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1200x1372.png 1200w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image.png 1298w\" sizes=\"(max-width: 896px) 100vw, 896px\" \/><\/figure>\n\n\n\n<p>Spring Bean\u7684\u751f\u547d\u5468\u671f\u5206\u4e3a<code>\u56db\u4e2a\u9636\u6bb5<\/code>\u548c<code>\u591a\u4e2a\u6269\u5c55\u70b9<\/code>\u3002\u6269\u5c55\u70b9\u53c8\u53ef\u4ee5\u5206\u4e3a<code>\u5f71\u54cd\u591a\u4e2aBean<\/code>\u548c<code>\u5f71\u54cd\u5355\u4e2aBean<\/code>\u3002\u6574\u7406\u5982\u4e0b\uff1a<br>\u56db\u4e2a\u9636\u6bb5<\/p>\n\n\n\n<ul><li>\u5b9e\u4f8b\u5316 Instantiation<\/li><li>\u5c5e\u6027\u8d4b\u503c Populate<\/li><li>\u521d\u59cb\u5316 Initialization<\/li><li>\u9500\u6bc1 Destruction<\/li><\/ul>\n\n\n\n<p>\u591a\u4e2a\u6269\u5c55\u70b9<\/p>\n\n\n\n<ul><li>\u5f71\u54cd\u591a\u4e2aBean<ul><li>BeanPostProcessor<\/li><li>InstantiationAwareBeanPostProcessor<\/li><\/ul><\/li><li>\u5f71\u54cd\u5355\u4e2aBean<ul><li>Aware<ul><li>Aware Group1<ul><li>BeanNameAware<\/li><li>BeanClassLoaderAware<\/li><li>BeanFactoryAware<\/li><\/ul><\/li><li>Aware Group2<ul><li>EnvironmentAware<\/li><li>EmbeddedValueResolverAware<\/li><li>ApplicationContextAware(ResourceLoaderAware\\ApplicationEventPublisherAware\\MessageSourceAware)<\/li><\/ul><\/li><\/ul><\/li><li>\u751f\u547d\u5468\u671f<ul><li>InitializingBean<\/li><li>DisposableBean<\/li><\/ul><\/li><\/ul><\/li><\/ul>\n\n\n\n<p>\u53c2\u8003\u94fe\u63a5\uff1ahttps:\/\/www.jianshu.com\/p\/1dec08d290c1 <\/p>\n\n\n\n<p>BeanPostProcessor\u7684\u4e24\u4e2a\u65b9\u6cd5<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>postProcessBeforeInitialization<\/td><td>\u5b9e\u4f8b\u5316\u3001\u4f9d\u8d56\u6ce8\u5165\u5b8c\u6bd5\uff0c<br>\u5728\u8c03\u7528\u663e\u793a\u7684\u521d\u59cb\u5316\u4e4b\u524d\u5b8c\u6210\u4e00\u4e9b\u5b9a\u5236\u7684\u521d\u59cb\u5316\u4efb\u52a1<\/td><\/tr><tr><td>postProcessAfterInitialization<\/td><td>\u5b9e\u4f8b\u5316\u3001\u4f9d\u8d56\u6ce8\u5165\u3001\u521d\u59cb\u5316\u5b8c\u6bd5\u65f6\u6267\u884c<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u53ef\u4ee5\u6709\u591a\u4e2aBeanPostProcessor\uff0c\u5e76\u4e14\u53ef\u4ee5\u6307\u5b9a\u987a\u5e8f<\/p>\n\n\n\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/blog.csdn.net\/qq_38526573\/article\/details\/88086752\">Spring\u4e4bBeanPostProcessor(\u540e\u7f6e\u5904\u7406\u5668)\u4ecb\u7ecd_\u6ce2\u6ce2\u70e4\u9e2d\u7684\u535a\u5ba2-CSDN\u535a\u5ba2_beanpostprocessor<\/a><\/p>\n\n\n\n<p>\u8fd9\u4e00\u7bc7\u5199\u7684\u6bd4\u8f83\u5b8c\u6574\uff1a<a href=\"https:\/\/blog.csdn.net\/weixin_39911567\/article\/details\/111039200\">spring\u751f\u547d\u5468\u671f\u4e03\u4e2a\u8fc7\u7a0b_\u9762\u8bd5\u5b98\uff1a\u8bf7\u4f60\u8bb2\u89e3\u4e00\u4e0bSpring Bean\u7684\u751f\u547d\u5468\u671f_weixin_39911567\u7684\u535a\u5ba2-CSDN\u535a\u5ba2<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"630\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1-1024x630.png\" alt=\"\" class=\"wp-image-1718\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1-1024x630.png 1024w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1-300x185.png 300w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1-768x473.png 768w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1-1536x946.png 1536w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1-1200x739.png 1200w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/01\/image-1.png 1582w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><span class=\"has-inline-color has-bright-red-color\">Aware \u63a5\u53e3<\/span><br>\u82e5 Spring \u68c0\u6d4b\u5230 bean \u5b9e\u73b0\u4e86 Aware \u63a5\u53e3\uff0c\u5219\u4f1a\u4e3a\u5176\u6ce8\u5165\u76f8\u5e94\u7684\u4f9d\u8d56\u3002\u6240\u4ee5<strong>\u901a\u8fc7\u8ba9bean \u5b9e\u73b0 Aware \u63a5\u53e3\uff0c\u5219\u80fd\u5728 bean \u4e2d\u83b7\u5f97\u76f8\u5e94\u7684 Spring \u5bb9\u5668\u8d44\u6e90<\/strong>\u3002<br>Spring \u4e2d\u63d0\u4f9b\u7684 Aware \u63a5\u53e3\u6709\uff1a<\/p>\n\n\n\n<ol><li>BeanNameAware\uff1a\u6ce8\u5165\u5f53\u524d bean \u5bf9\u5e94 beanName\uff1b<\/li><li>BeanClassLoaderAware\uff1a\u6ce8\u5165\u52a0\u8f7d\u5f53\u524d bean \u7684 ClassLoader\uff1b<\/li><li>BeanFactoryAware\uff1a\u6ce8\u5165 \u5f53\u524dBeanFactory\u5bb9\u5668 \u7684\u5f15\u7528\u3002<\/li><\/ol>\n\n\n\n<p>\u4ee5\u4e0a\u662f\u9488\u5bf9 BeanFactory \u7c7b\u578b\u7684\u5bb9\u5668\uff0c\u800c\u5bf9\u4e8e ApplicationContext \u7c7b\u578b\u7684\u5bb9\u5668\uff0c\u4e5f\u63d0\u4f9b\u4e86 Aware \u63a5\u53e3\uff0c\u53ea\u4e0d\u8fc7\u8fd9\u4e9b Aware \u63a5\u53e3\u7684\u6ce8\u5165\u5b9e\u73b0\uff0c\u662f\u901a\u8fc7 BeanPostProcessor \u7684\u65b9\u5f0f\u6ce8\u5165\u7684\uff0c\u4f46\u5176\u4f5c\u7528\u4ecd\u662f\u6ce8\u5165\u4f9d\u8d56\u3002<\/p>\n\n\n\n<ol><li>EnvironmentAware\uff1a\u6ce8\u5165 Enviroment\uff0c\u4e00\u822c\u7528\u4e8e\u83b7\u53d6\u914d\u7f6e\u5c5e\u6027\uff1b<\/li><li>EmbeddedValueResolverAware\uff1a\u6ce8\u5165 EmbeddedValueResolver\uff08Spring EL\u89e3\u6790\u5668\uff09\uff0c\u4e00\u822c\u7528\u4e8e\u53c2\u6570\u89e3\u6790\uff1b<\/li><li>ApplicationContextAware\uff08ResourceLoader\u3001ApplicationEventPublisherAware\u3001MessageSourceAware\uff09\uff1a\u6ce8\u5165 ApplicationContext \u5bb9\u5668\u672c\u8eab\u3002<\/li><\/ol>\n\n\n\n<p><span class=\"has-inline-color has-bright-red-color\">InitializingBean \u548c init-method<br><\/span>InitializingBean \u548c init-method \u662f Spring \u4e3a\u00a0<strong>bean \u521d\u59cb\u5316<\/strong>\u63d0\u4f9b\u7684\u6269\u5c55\u70b9\u3002<br>InitializingBean\u63a5\u53e3 \u7684\u5b9a\u4e49\u5982\u4e0b\uff1a<br>public interface InitializingBean { void afterPropertiesSet() throws Exception; }<br>\u5728 afterPropertiesSet() \u65b9\u6cd5\u5199\u521d\u59cb\u5316\u903b\u8f91\u3002<\/p>\n\n\n\n<p><br>\u6307\u5b9a init-method \u65b9\u6cd5\uff0c\u6307\u5b9a\u521d\u59cb\u5316\u65b9\u6cd5\uff1a&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?> &lt;beans xmlns=&#8221;http:\/\/www.springframework.org\/schema\/beans&#8221; xmlns:xsi=&#8221;http:\/\/www.w3.org\/2001\/XMLSchema-instance&#8221; xsi:schemaLocation=&#8221;http:\/\/www.springframework.org\/schema\/beans http:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd&#8221;> &lt;bean id=&#8221;demo&#8221; class=&#8221;com.chaycao.Demo&#8221; init-method=&#8221;init()&#8221;\/> &lt;\/beans> <\/p>\n\n\n\n<p><br>DisposableBean \u548c destory-method \u4e0e\u4e0a\u8ff0\u7c7b\u4f3c\uff0c\u5c31\u4e0d\u63cf\u8ff0\u4e86\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Bean\u7684\u751f\u547d\u5468\u671f\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\u548c\u591a\u4e2a\u6269\u5c55\u70b9\u3002\u6269\u5c55\u70b9\u53c8\u53ef\u4ee5\u5206\u4e3a\u5f71\u54cd\u591a\u4e2aBean\u548c\u5f71\u54cd\u5355\u4e2aBean\u3002 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1704"}],"collection":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1704"}],"version-history":[{"count":27,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1704\/revisions"}],"predecessor-version":[{"id":1733,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1704\/revisions\/1733"}],"wp:attachment":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}