{"id":45,"date":"2021-03-13T12:07:22","date_gmt":"2021-03-13T04:07:22","guid":{"rendered":"http:\/\/daishen.ltd\/?p=45"},"modified":"2021-03-13T12:07:25","modified_gmt":"2021-03-13T04:07:25","slug":"spring","status":"publish","type":"post","link":"https:\/\/daishen.ltd\/?p=45","title":{"rendered":"spring"},"content":{"rendered":"<p><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width initial-scale=1\"><br \/>\n<title>spring<\/title><\/p>\n<h2>IOC\u521b\u5efa\u5bf9\u8c61<\/h2>\n<h4>1.\u4f7f\u7528\u65e0\u53c2\u6784\u9020\u521b\u5efa\u5bf9\u8c61\uff0c\u9ed8\u8ba4<\/h4>\n<h4>2.\u4f7f\u7528\u6709\u53c2\u6784\u9020\u5bf9\u8c61\uff1a<\/h4>\n<p>1.\u4e0b\u6807\u8d4b\u503c\uff1a<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;!--\u7b2c-\u79cd\uff0c\u4e0b\u6807\u8d4b\u503c !--&gt;\n&lt;bean id=\"user\" class=\"com. kuang. pojo.User\"&gt;\n&lt; constructor-arg  index= \"0\" value=\"\u54c8\u54c8\u54c8\"\/&gt;\n&lt;\/bean&gt;\n<\/code><\/pre>\n<p>2.\u53c2\u6570\u540d<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;!--\u7b2c\u4e09\u79cd\uff0c \u76f4\u63a5\u901a\u8fc7\u53c2\u6570\u540d\u6765\u8bbe\u7f6e--&gt;\n&lt;bean id=\"user\" class=\"com. kuang. pojo .User\"&gt;\n&lt;constructor-arg name=\"name\" value=\"\u54c8\u54c8\u54c8\"\/&gt;\n&lt;\/bean&gt;\n<\/code><\/pre>\n<h2>spring\u914d\u7f6e<\/h2>\n<h4>1\u3001\u522b\u540d<\/h4>\n<pre><code class=\"language-xml\" lang=\"xml\"> &lt;!--\u522b\u540d\uff0c\u5982\u679c\u6dfb\u52a0\u4e86\u522b\u540d\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u4f7f\u7528\u522b\u540d\u83b7\u53d6\u5230\u8fd9\u4e2a\u5bf9\u8c61--&gt;\n &lt;alias name=\"user\" alias=\"userNew\"\/&gt;\n<\/code><\/pre>\n<h4>2\u3001Bean\u7684\u914d\u7f6e<\/h4>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;!--\nid:bean\u7684\u552f\u4e00\u6807\u8bc6\u7b26\uff0c\u4e5f\u5c31\u662f\u76f8\u5f53\u4e8e\u6211\u4eec\u5b66\u7684\u5bf9\u8c61\u540d\nclass : bean \u5bf9\u8c61\u6240\u5bf9\u5e94\u7684\u5168\u9650\u5b9a\u540d:\u5305\u540d+\u7c7b\u578b\nname :\u4e5f\u662f\u522b\u540d,\u800c\u4e14name\u53ef\u4ee5\u540c\u65f6\u53d6\u591a\u4e2a\u522b\u540d --&gt;\n&lt;bean id=\"userT\" class=\"com.cuoni.pojo.User\" name= \"user2 u2,u3;u4\"&gt;\n&lt;property name=\"name\" value=\" \u897f\u90e8\u5f00\u6e90\" \/&gt;\n&lt;\/bean&gt;\n<\/code><\/pre>\n<h4>3\u3001import<\/h4>\n<p>\u8fd9\u4e2aimport,\u4e00\u822c\u7528\u4e8e\u56e2\u961f\u5f00\u53d1\u4f7f\u7528\uff0c\u4ed6\u53ef\u4ee5\u5c06\u591a\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u5bfc\u5165\u5408\u5e76\u4e3a\u4e00-\u4e2a<br \/>\n\u5047\u8bbe\uff0c\u73b0\u5728\u9879\u76ee\u4e2d\u6709\u591a\u4e2a\u4eba\u5f00\u53d1,\u8fd9\u4e09\u4e2a\u4eba\u590d\u5236\u4e0d\u540c\u7684\u7c7b\u5f00\u53d1,\u4e0d\u540c\u7684\u7c7b\u9700\u8981\u6ce8\u518c\u5728\u4e0d\u540c\u7684bean\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u5229<br \/>\n\u7528import\u5c06\u6240\u6709\u4eba\u7684beans.xml\u5408\u5e76\u4e3a\u4e00\u4e2a\u603b\u7684!<br \/>\n\u25cf\u5f20\u4e09<br \/>\n\u25cf\u674e\u56db<br \/>\n\u25cfapplicationContext.xml<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\"> &lt;import resource=\"beans.xml\"\/&gt;\n &lt;import resource=\"beans2.xml\"\/&gt;\n &lt;import resource=\"beans3.xml\"\/&gt;\n<\/code><\/pre>\n<p>\u4f7f\u7528\u7684\u65f6\u5019\uff0c\u76f4\u63a5\u4f7f\u7528\u603b\u7684\u914d\u7f6e\u5c31\u53ef\u4ee5\u4e86<\/p>\n<h2>\u4f9d\u8d56\u6ce8\u5165<\/h2>\n<h4>1\u3001\u6784\u9020\u5668\u6ce8\u5165<\/h4>\n<h4>2\u3001set\u65b9\u5f0f\u6ce8\u5165<\/h4>\n<ul>\n<li>\u4f9d\u8d56\u6ce8\u5165\n<ul>\n<li>\u4f9d\u8d56\uff1abean\u5bf9\u8c61\u7684\u521b\u5efa\u4f9d\u8d56\u4e8e\u5bb9\u5668<\/li>\n<li>\u6ce8\u5165\uff1abean\u4e2d\u7684\u6240\u6709\u5c5e\u6027\uff0c\u7531\u5bb9\u5668\u6765\u6ce8\u5165<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u73af\u5883\u642d\u5efa\uff1a<\/p>\n<p>1\u3001\u590d\u6742\u7c7b\u578b<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class Address {\n    private String address;\n\n    public String getAddress() {\n        return address;\n    }\n\n    public void setAddress(String address) {\n        this.address = address;\n    }\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>2\u3001\u771f\u5b9e\u6d4b\u8bd5\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class Student {\n    private String name;\n    private Address address;\n    private String[] books ;\n    private List&lt;String&gt; hobbys;\n    private Map&lt;String, String&gt; card;\n    private Set&lt;String&gt; games;\n    private String wife;\n    private Properties info;\n}\n<\/code><\/pre>\n<p>3\u3001beans.xml<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"\n       xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n       xsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans\n        https:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd\"&gt;\n\n    &lt;bean id=\"address\" class=\"com.cuoni.pojo.Address\"&gt;\n        &lt;property name=\"address\" value=\"\u6e56\u5317\"\/&gt;\n    &lt;\/bean&gt;\n    &lt;bean id=\"student\" class=\"com.cuoni.pojo.Student\"&gt;\n        &lt;!-- \u7b2c\u4e00\u79cd\uff0c\u666e\u901a\u503c\u6ce8\u5165 --&gt;\n        &lt;property name=\"name\" value=\"\u54c8\u54c8\u54c8\"\/&gt;\n        &lt;!-- \u7b2c\u4e8c\u79cd\uff0cBean\u6ce8\u5165 --&gt;\n        &lt;property name=\"address\" ref=\"address\"\/&gt;\n        &lt;!-- \u7b2c\u4e09\u79cd\uff0c\u6570\u7ec4\u6ce8\u5165 --&gt;\n        &lt;property name=\"books\"&gt;\n            &lt;array&gt;\n                &lt;value&gt;\u91d1\u74f6\u6885&lt;\/value&gt;\n                &lt;value&gt;\u897f\u6e38\u8bb0&lt;\/value&gt;\n                &lt;value&gt;\u4e09\u56fd\u6f14\u4e49&lt;\/value&gt;\n                &lt;value&gt;\u6c34\u6d52\u4f20&lt;\/value&gt;\n            &lt;\/array&gt;\n        &lt;\/property&gt;\n        &lt;!-- \u7b2c\u56db\u79cd\uff0clist\u6ce8\u5165 --&gt;\n        &lt;property name=\"hobbys\"&gt;\n            &lt;list&gt;\n                &lt;value&gt;\u5531&lt;\/value&gt;\n                &lt;value&gt;\u8df3&lt;\/value&gt;\n                &lt;value&gt;rap&lt;\/value&gt;\n                &lt;value&gt;\u7bee\u7403&lt;\/value&gt;\n            &lt;\/list&gt;\n        &lt;\/property&gt;\n        &lt;!-- \u7b2c\u4e94\u79cd\uff0cmap\u6ce8\u5165 --&gt;\n        &lt;property name=\"card\"&gt;\n            &lt;map&gt;\n                &lt;entry key=\"\u8eab\u4efd\u8bc1\" value=\"123456789874562145\"\/&gt;\n                &lt;entry key=\"\u5b66\u751f\u8bc1\" value=\"14224588452754155245\"\/&gt;\n                &lt;entry key=\"\u94f6\u884c\u5361\" value=\"6214975402158661\"\/&gt;\n            &lt;\/map&gt;\n        &lt;\/property&gt;\n        &lt;!-- \u7b2c\u516d\u79cd\uff0cset\u6ce8\u5165 --&gt;\n        &lt;property name=\"games\"&gt;\n            &lt;set&gt;\n                &lt;value&gt;\u5403\u996d&lt;\/value&gt;\n                &lt;value&gt;\u7761\u89c9&lt;\/value&gt;\n                &lt;value&gt;\u6253\u8c46\u8c46&lt;\/value&gt;\n            &lt;\/set&gt;\n        &lt;\/property&gt;\n        &lt;!-- \u7b2c\u4e03\u79cd\uff0cnull\u6ce8\u5165 --&gt;\n        &lt;property name=\"wife\"&gt;\n            &lt;null\/&gt;\n        &lt;\/property&gt;\n        &lt;!-- \u7b2c\u516b\u79cd\uff0cProperties\u6ce8\u5165 --&gt;\n        &lt;property name=\"info\"&gt;\n            &lt;props&gt;\n                &lt;prop key=\"\u5b66\u53f7\"&gt;10210417777&lt;\/prop&gt;\n                &lt;prop key=\"\u59d3\u540d\"&gt;\u590f\u667a&lt;\/prop&gt;\n                &lt;prop key=\"\u6027\u522br\"&gt;\u7537&lt;\/prop&gt;\n                &lt;prop key=\"\u7269\u79cd\"&gt;\u4eba&lt;\/prop&gt;\n            &lt;\/props&gt;\n        &lt;\/property&gt;\n    &lt;\/bean&gt;\n&lt;\/beans&gt;\n<\/code><\/pre>\n<p>4\u3001\u6d4b\u8bd5\u7c7b<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class MyTest {\n    public static void main(String[] args) {\n        ApplicationContext context=new ClassPathXmlApplicationContext(\"bean.xml\");\n        Student student=(Student) context.getBean(\"student\");\n        System.out.println(student.toString());\n    }\n}\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>3\u3001\u62d3\u5c55\u65b9\u5f0f\u6ce8\u5165<\/h4>\n<p>1\u3001userbeans.xml<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"\n       xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n       xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"\n       xmlns:c=\"http:\/\/www.springframework.org\/schema\/c\"\n       xsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans\n       https:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd\"&gt;\n\n    &lt;!--p\u547d\u540d\u7a7a\u95f4\u6ce8\u5165\uff0c\u53ef\u4ee5\u76f4\u63a5\u6ce8\u5165\u5c5e\u6027\u7684\u503c: property--&gt;\n    &lt;bean id=\"user\" class=\"com.cuoni.pojo.User\" p:name=\"\u590f\u667a\" p:age=\"20\"\/&gt;\n    &lt;!--c\u547d\u540d\u7a7a\u95f4\u6ce8\u5165\uff0c\u901a\u8fc7\u6784\u9020\u5668\u6ce8\u5165: construct-args--&gt;\n    &lt;bean id=\"user2\" class=\"com.cuoni.pojo.User\" c:name=\"\u54c8\u54c8\" c:age=\"22\"\/&gt;\n&lt;\/beans&gt;\n<\/code><\/pre>\n<p>2\u3001\u6d4b\u8bd5\uff1a<\/p>\n<pre><code class=\"language-java\" lang=\"java\">  @Test\n    public void yest2(){\n     ApplicationContext context=   new ClassPathXmlApplicationContext(\"userbeans.xml\");\n     User user=context.getBean(\"user2\",User.class);\n        System.out.println(user);\n    }\n<\/code><\/pre>\n<p>\u6ce8\u610f: p\u547d\u540d\u548cc\u547d\u540d\u7a7a\u95f4\u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528\uff0c\u9700\u8981\u5bfc\u5165xml\u7ea6\u675f!<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\"> xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"\n xmlns:c=\"http:\/\/www.springframework.org\/schema\/c\"\n<\/code><\/pre>\n<h2>bean\u7684\u4f5c\u7528\u57df<\/h2>\n<figure>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left;\">\u8303\u56f4<\/th>\n<th style=\"text-align:left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:left;\"><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/spring-framework-reference\/core.html#beans-factory-scopes-singleton\">singleton<\/a><\/td>\n<td style=\"text-align:left;\">\uff08\u9ed8\u8ba4\uff09\u5c06\u5355\u4e2a bean \u5b9a\u4e49\u8303\u56f4\u5230\u6bcf\u4e2a Spring IoC \u5bb9\u5668\u7684\u5355\u4e2a\u5bf9\u8c61\u5b9e\u4f8b\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left;\"><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/spring-framework-reference\/core.html#beans-factory-scopes-prototype\">prototype<\/a><\/td>\n<td style=\"text-align:left;\">\u5c06\u5355\u4e2a bean \u5b9a\u4e49\u8303\u56f4\u5230\u4efb\u4f55\u6570\u91cf\u7684\u5bf9\u8c61\u5b9e\u4f8b\u3002\u6bcf\u6b21\u4ece\u5bb9\u5668\u4e2dget\u7684\u65f6\u5019\uff0c\u90fd\u4f1a\u4ea7\u751f\u4e00\u4e2a\u65b0\u5bf9\u8c61!<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left;\"><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/spring-framework-reference\/core.html#beans-factory-scopes-request\">request<\/a><\/td>\n<td style=\"text-align:left;\">\u5c06\u5355\u4e2a bean \u5b9a\u4e49\u8303\u56f4\u5230\u5355\u4e2a HTTP \u8bf7\u6c42\u7684\u751f\u547d\u5468\u671f\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u6bcf\u4e2a HTTP \u8bf7\u6c42\u90fd\u6709\u81ea\u5df1\u7684 bean \u5b9e\u4f8b\uff0c\u8be5\u5b9e\u4f8b\u662f\u5728\u5355\u4e2a bean \u5b9a\u4e49\u80cc\u9762\u521b\u5efa\u7684\u3002\u4ec5\u5728 Web \u611f\u77e5 Spring \u7684\u4e0a\u4e0b\u6587\u4e2d\u6709\u6548\u3002<code>ApplicationContext<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left;\"><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/spring-framework-reference\/core.html#beans-factory-scopes-session\">session<\/a><\/td>\n<td style=\"text-align:left;\">\u5c06\u5355\u4e2a bean \u5b9a\u4e49\u8303\u56f4\u5230 HTTP \u7684\u751f\u547d\u5468\u671f\u3002\u4ec5\u5728 Web \u611f\u77e5 Spring \u7684\u4e0a\u4e0b\u6587\u4e2d\u6709\u6548\u3002<code>Session``ApplicationContext<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left;\"><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/spring-framework-reference\/core.html#beans-factory-scopes-application\">application<\/a><\/td>\n<td style=\"text-align:left;\">\u5c06\u5355\u4e2a bean \u5b9a\u4e49\u8303\u56f4\u5230 \u7684\u751f\u547d\u5468\u671f\u3002\u4ec5\u5728 Web \u611f\u77e5 Spring \u7684\u4e0a\u4e0b\u6587\u4e2d\u6709\u6548\u3002<code>ServletContext``ApplicationContext<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left;\"><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/spring-framework-reference\/web.html#websocket-stomp-websocket-scope\">websocket<\/a><\/td>\n<td style=\"text-align:left;\">\u5c06\u5355\u4e2a bean \u5b9a\u4e49\u8303\u56f4\u5230 \u7684\u751f\u547d\u5468\u671f\u3002\u4ec5\u5728 Web \u611f\u77e5 Spring \u7684\u4e0a\u4e0b\u6587\u4e2d\u6709\u6548\u3002<code>WebSocket``ApplicationContext<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h4>1.\u5355\u4f8b\u6a21\u5f0f(Spring\u9ed8\u8ba4\u673a\u5236)<\/h4>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;bean id=\"user2\" class=\"com.cuoni.pojo.User\" c:age=\"18\" c:name=\"\u54c8\u54c8\u54c8\"\nscope=\"singleton\"\/&gt;\n<\/code><\/pre>\n<h4>2.\u539f\u578b\u6a21\u5f0f:\u6bcf\u6b21\u4ece\u5bb9\u5668\u4e2dget\u7684\u65f6\u5019\uff0c\u90fd\u4f1a\u4ea7\u751f\u4e00\u4e2a\u65b0\u5bf9\u8c61 !<\/h4>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;bean id=\"accountService\" class=\"com.something.DefaultAccountService\"\nscope=\"prototype\"\/&gt;\n<\/code><\/pre>\n<h4>3.\u5176\u4f59\u7684request\u3001session\u3001application. \u8fd9\u4e9b\u4e2a\u53ea\u80fd\u5728web\u5f00\u53d1\u4e2d\u4f7f\u7528\u5230!<\/h4>\n<p>####<\/p>\n<h2>Bean\u7684\u81ea\u52a8\u88c5\u914d<\/h2>\n<ul>\n<li>\u81ea\u52a8\u88c5\u914d\u662fSpring\u6ee1\u8db3bean\u4f9d\u8d56\u4e00 \u79cd\u65b9\u5f0f!<\/li>\n<li>Spring\u4f1a\u5728. \u4e0a\u4e0b\u6587\u4e2d\u81ea\u52a8\u5bfb\u627e\uff0c\u5e76\u81ea\u52a8\u7ed9bean\u88c5\u914d\u5c5e\u6027!&nbsp;\u5728Spring\u4e2d\u6709\u4e09\u79cd\u88c5\u914d\u7684\u65b9\u5f0f<br \/>\n1.\u5728xml\u4e2d\u663e\u793a\u7684\u914d\u7f6e<br \/>\n2.\u5728java\u4e2d\u663e\u793a\u914d\u7f6e<br \/>\n3.\u9690\u5f0f\u7684\u81ea\u52a8\u88c5\u914dbean<\/li>\n<\/ul>\n<h3>1\u3001\u6d4b\u8bd5<\/h3>\n<p>\u73af\u5883\u642d\u5efa\uff1a\u4e00\u4e2a\u4eba\u6709\u4e24\u53ea\u5ba0\u7269\uff0c\u732b\u548c\u72d7<\/p>\n<h3>2\u3001ByName\u81ea\u52a8\u88c5\u914d<\/h3>\n<pre><code class=\"language-xml\" lang=\"xml\"> &lt;!--\n    byName:\u4f1a\u81ea\u52a8\u5728\u5bb9\u5668\u4e0a\u4e0b\u6587\u4e2d\u67e5\u627e\uff0c\u548c\u81ea\u5df1\u5bf9\u8c61set\u65b9\u6cd5\u540e\u9762\u7684\u503c\u5bf9\u5e94\u7684beanid!\n  --&gt;\n        &lt;bean id=\"people\" class=\"com.cuoni.pojo.People\" autowire=\"byName\"&gt;\n            &lt;property name=\"name\" value=\"\u590f\u667a\"\/&gt;\n<\/code><\/pre>\n<h3>3\u3001ByType\u81ea\u52a8\u88c5\u914d<\/h3>\n<pre><code class=\"language-xml\" lang=\"xml\">    &lt;bean  class=\"com.cuoni.pojo.Cat\"\/&gt;\n    &lt;bean  class=\"com.cuoni.pojo.Dog\"\/&gt;\n    &lt;!--\n    byType:\u4f1a\u81ea\u52a8\u5728\u5bb9\u5668\u4e0a\u4e0b\u6587\u4e2d\u67e5\u627e\uff0c\u548c\u81ea\u5df1\u5bf9\u8c61\u5c5e\u6027\u7c7b\u578b\u76f8\u540c\u7684bean!\n    --&gt;\n        &lt;bean id=\"people\" class=\"com.cuoni.pojo.People\" autowire=\"byType\"&gt;\n            &lt;property name=\"name\" value=\"\u590f\u667a\"\/&gt;\n        &lt;\/bean&gt;\n<\/code><\/pre>\n<p>\u5c0f\u7ed3: .<br \/>\n\u25cfbyname\u7684\u65f6\u5019\uff0c\u9700\u8981\u4fdd\u8bc1\u6240\u6709bean\u7684id\u552f\u4e00\uff0c \u5e76\u4e14\u8fd9\u4e2abean\u9700\u8981\u548c\u81ea\u52a8\u6ce8\u5165\u7684\u5c5e\u6027\u7684set\u65b9\u6cd5\u7684\u503c\u4e00\u81f4!<br \/>\n\u25cfbytype\u7684\u65f6\u5019\uff0c\u9700\u8981\u4fdd\u8bc1\u6240\u6709bean\u7684class\u552f\u4e00\uff0c \u5e76\u4e14\u8fd9\u4e2abean\u9700\u8981\u548c\u81ea\u52a8\u6ce8\u5165\u7684\u5c5e\u6027\u7684\u7c7b\u578b\u4e00\u81f4!<\/p>\n<h3>4\u3001\u4f7f\u7528\u6ce8\u89e3\u5b9e\u73b0\u81ea\u52a8\u88c5\u914d<\/h3>\n<p>jdk1.5\u652f\u6301\u7684\u6ce8\u89e3\uff0cSpring2.5\u5c31\u652f\u6301\u6ce8\u89e3\u4e86<\/p>\n<p>\u8981\u4f7f\u7528\u6ce8\u89e3\u987b\u77e5: .<br \/>\n1.\u5bfc\u5165\u7ea6\u675f:context\u7ea6\u675f<br \/>\n2.\u914d\u7f6e\u6ce8\u89e3\u7684\u652f\u6301\uff1a<a href=\"annotation-config\/\" target=\"_blank\" class=\"url\" rel=\"noopener\">context:annotation-config\/<\/a><\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"\n    xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n    xmlns:context=\"http:\/\/www.springframework.org\/schema\/context\"\n    xsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans\n        https:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd\n        http:\/\/www.springframework.org\/schema\/context\n        https:\/\/www.springframework.org\/schema\/context\/spring-context.xsd\"&gt;\n\n    &lt;context:annotation-config\/&gt;\n\n&lt;\/beans&gt;\n<\/code><\/pre>\n<h4>@Autowired<\/h4>\n<p>\u76f4\u63a5\u5728\u5c5e\u6027\u4e0a\u4f7f\u7528\u5373\u53ef!\u4e5f\u53ef\u4ee5\u5728set\u65b9\u5f0f\u4e0a\u4f7f\u7528!<br \/>\n\u4f7f\u7528Autowired\u6211\u4eec\u53ef\u4ee5\u4e0d\u7528\u7f16\u5199Set\u65b9\u6cd5\u4e86\uff0c\u524d\u63d0\u662f\u4f60\u8fd9\u4e2a\u81ea\u52a8\u88c5\u914d\u7684\u5c5e\u6027\u5728IOC (Spring) \u5bb9\u5668\u4e2d\u5b58\u5728\uff0c\u4e14\u7b26<br \/>\n\u5408\u540d\u5b57byname!<\/p>\n<p>\u79d1\u666e:<\/p>\n<pre><code class=\"language-java\" lang=\"java\">@Nullable  \u5b57\u6bb5\u6807\u8bb0\u4e86\u8fd9\u4e2a\u6ce8\u89e3\uff0c\u8bf4\u660e\u8fd9\u4e2a\u5b57\u6bb5\u53ef\u4ee5\u4e3anull;\n<\/code><\/pre>\n<pre><code class=\"language-java\" lang=\"java\">pub1ic @interface Autowired {\nboolean required() default true;\n}\n<\/code><\/pre>\n<p>\u6d4b\u8bd5\u4ee3\u7801<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class People {\n    \/\/\u5982\u679c\u663e\u793a\u5b9a\u4e49\u4e86Autowi red\u7684requi red\u5c5e\u6027\u4e3afalse\uff0c \u8bf4\u660e\u8fd9\u4e2a\u5bf9\u8c61\u53ef\u4ee5\u4e3anu11\uff0c\u5426\u5219\u4e0d\u5141\u8bb8\u4e3a\u7a7a\n    @Autowired(required=false)\n    private Cat cat;\n    @Autowired\n    private Dog dog;\n    private String name;\n}\n<\/code><\/pre>\n<p>\u5982\u679c@Autowired\u81ea\u52a8\u88c5\u914d\u7684\u73af\u5883\u6bd4\u8f83\u590d\u6742\uff0c\u81ea\u52a8\u88c5\u914d\u65e0\u6cd5\u901a\u8fc7\u4e00\u4e2a\u6ce8\u89e3[@Autowired]\u5b8c\u6210\u7684\u65f6\u5019\u3001\u6211\u4eec\u53ef\u4ee5<br \/>\n\u4f7f\u7528@Qualifier(value=&#8221;xxx&#8221;)\u53bb\u914d\u7f6e@Autowired\u7684\u4f7f\u7528\uff0c\u6307\u5b9a\u4e00\u4e2a\u552f\u4e00 -\u7684bean\u5bf9\u8c61\u6ce8\u5165!<\/p>\n<ul>\n<li>\u5c0f\u7ed3:<br \/>\n@Resource\u548c@ Autowired\u7684\u533a\u522b: .<br \/>\n\u90fd\u662f\u7528\u6765\u81ea\u52a8\u88c5\u914d\u7684\uff0c\u90fd\u53ef\u4ee5\u653e\u5728\u5c5e\u6027\u5b57\u6bb5\u4e0a<br \/>\n@ Autowired\u901a\u8fc7bytype\u7684\u65b9\u5f0f\u5b9e\u73b0\uff0c\u800c\u4e14\u8981\u6c42\u8fd9\u4e2a\u5bf9\u8c61\u5fc5\u987b\u5b58\u5728<br \/>\n@Resource \u9ed8\u8ba4\u901a\u8fc7byname\u7684\u65b9\u5f0f\u5b9e\u73b0,\u5982\u679c\u627e\u4e0d\u5230\u540d\u5b57,\u5219\u901a\u8fc7byType\u5b9e\u73b0!\u5982\u679c\u4e24\u4e2a\u90fd\u627e\u4e0d\u5230\u7684\u60c5\u51b5\u4e0b\uff0c\u5c31\u62a5\u9519!<\/li>\n<\/ul>\n<h2>\u4f7f\u7528\u6ce8\u89e3\u5f00\u53d1<\/h2>\n<h4>1\u3001bean<\/h4>\n<p>&nbsp;<\/p>\n<h4>2\u3001\u5c5e\u6027\u5982\u4f55\u6ce8\u5165<\/h4>\n<pre><code class=\"language-java\" lang=\"java\">\/\/@Component\u7ec4\u4ef6\uff0c\u76f8\u5f53\u4e8e&lt;bean id=\"user\" class=\"com.cuoni.pojo.User\"\/&gt;\n@Component\npublic class User {\n    @Value(\"\u54c8\u54c8\u54c8\")\n    public String name;\n}\n<\/code><\/pre>\n<h4>3\u3001\u884d\u751f\u7684\u6ce8\u89e3<\/h4>\n<p>@Component\u6709\u51e0\u4e2a\u884d\u751f\u6ce8\u89e3\uff0c\u6211\u4eec\u5728web\u5f00\u53d1\u4e2d\uff0c\u4f1a\u6309\u7167mvc\u4e09\u5c42\u67b6\u6784\u5206\u5c42!<\/p>\n<ul>\n<li>dao\u3010@Repository\u3011<\/li>\n<li>service\u3010@Service\u3011<\/li>\n<li>controller\u3010@Controller\u3011<\/li>\n<\/ul>\n<p>\u8fd9\u56db\u4e2a\u6ce8\u89e3\u529f\u80fd\u90fd\u662f\u4e00\u6837\u7684\uff0c \u90fd\u662f\u4ee3\u8868\u5c06\u67d0\u4e2a\u7c7b\u6ce8\u518c\u5230Spring\u4e2d\uff0c\u88c5\u914dBean<\/p>\n<h4>4\u3001\u81ea\u52a8\u88c5\u914d\u7f6e<\/h4>\n<pre><code class=\"language-xml\" lang=\"xml\">@Autowired :\u81ea\u52a8\u88c5\u914d\u901a\u8fc7\u7c7b\u578b\u3002\u540d\u5b57\n  \u5982\u679cAutowi red\u4e0d\u80fd\u552f\u4e00\u81ea \u52a8\u88c5\u914d\u4e0a\u5c5e\u6027\uff0c\u5219\u9700\u8981\u901a\u8fc7@Qualifier(value=\"xxx\")\n@Nu11able\n\u5b57\u6bb5\u6807\u8bb0\u4e86\u8fd9\u4e2a\u6ce8\u89e3\uff0c\u8bf4\u660e\u8fd9\u4e2a\u5b57\u6bb5\u53ef\u4ee5\u4e3anu11;\n@Resource : \u81ea\u52a8\u88c5\u914d\u901a\u8fc7\u540d\u5b57\u3002\u7c7b\u578b\u3002\n\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h4>5\u3001\u4f5c\u7528\u57df<\/h4>\n<pre><code class=\"language-java\" lang=\"java\">@Component\n@Scope(\"prototype\")\/\/\u539f\u578b\u6a21\u5f0f\npublic class User {\n    @Value(\"\u54c8\u54c8\u54c8\")\n    public String name;\n}\n<\/code><\/pre>\n<h4>6\u3001\u5c0f\u7ed3<\/h4>\n<p>xml\u4e0e\u6ce8\u89e3:<br \/>\nxml\u66f4\u52a0\u4e07\u80fd\uff0c\u9002\u7528\u4e8e\u4efb\u4f55\u573a\u5408!\u7ef4\u62a4\u7b80\u5355\u65b9\u4fbf.<br \/>\n\u6ce8\u89e3\u4e0d\u662f\u81ea\u5df1\u7c7b\u4f7f\u7528\u4e0d\u4e86\uff0c\u7ef4\u62a4\u76f8\u5bf9\u590d\u6742!<br \/>\nxml\u4e0e\u6ce8\u89e3\u6700\u4f73\u5b9e\u8df5:<br \/>\nxml\u7528\u6765\u7ba1\u7406bean;<br \/>\n\u6ce8\u89e3\u53ea\u8d1f\u8d23\u5b8c\u6210\u5c5e\u6027\u7684\u6ce8\u5165; .<\/p>\n<p>\u6211\u4eec\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\uff0c\u53ea\u9700\u8981\u6ce8\u610f\u4e00\u4e2a\u95ee\u9898\uff1a\u5fc5\u987b\u8ba9\u6ce8\u89e3\u751f\u6548\uff0c\u5c31\u9700\u8981\u5f00\u542f\u6ce8\u89e3\u7684\u652f\u6301<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;!-- \u6307\u5b9a\u8981\u626b\u63cf\u7684\u5305\uff0c\u8fd9\u4e2a\u5305\u4e0b\u7684\u6ce8\u89e3\u5c31\u4f1a\u751f\u6548 --&gt;\n&lt;context:component-scan base-package=\"com.cuoni\"\/&gt;\n&lt;context:annotation-config\/&gt;\n<\/code><\/pre>\n<h2>\u4f7f\u7528java\u7684\u65b9\u5f0f\u914d\u7f6espring<\/h2>\n<p>\u6211\u4eec\u73b0\u5728\u8981\u5b8c\u5168\u4e0d\u4f7f\u7528Spring\u7684xml\u914d\u7f6e\u4e86\uff0c\u5168\u6743\u4ea4\u7ed9Java\u6765\u505a!<br \/>\nJavaConfig\u662fSpring\u7684\u4e00\u4e2a\u5b50\u9879\u76ee\uff0c\u5728Spring 4\u4e4b\u540e,\u5b83\u6210\u4e3a\u4e86\u4e00\u4e2a\u6838\u5fc3\u529f\u80fd!<\/p>\n<p>\u5b9e\u4f53\u7c7b\uff1a<\/p>\n<pre><code class=\"language-java\" lang=\"java\">@Component\npublic class User {\n    @Value(\"\u590f\u667a\")\n    private String name;\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    @Override\n    public String toString() {\n        return \"User{\" +\n                \"name='\" + name + '\\'' +\n                '}';\n    }\n}\n<\/code><\/pre>\n<p>\u914d\u7f6e\u7c7b\uff1a<\/p>\n<pre><code class=\"language-java\" lang=\"java\">\/\/\u8fd9\u4e2a\u4e5f\u4f1aSpring\u5bb9\u5668\u6258\u7ba1\uff0c\u6ce8\u518c\u5230\u5bb9\u5668\u4e2d\uff0c\u56e0\u4e3a\u4ed6\u672c\u7c73\u5c31\u662f\u4e00 \u4e2a@Component\uff0c@Configuration\u4ee3\u8868\u8fd9\u662f\u4e00\u4e2a\u914d\u7f6e\u7c7b\uff0c\u5c31\u79df\u6211\u4eec\u4e4b\u524d\u770b\u7684beans.xml\n@Configuration\n@ComponentScan(\"com.cuoni\")\npublic class CuoniConfig {\n    \/\/\u6ce8\u518c\u4e00\u4e2abean \uff0c\u5c31\u76f8\u5f53 \u4e8e\u6211\u4eec\u4e4b\u524d\u5199\u7684\u4e00\u4e2abean\u6807\u7b7e\n    \/\/\u8fd9\u4e2a\u65b9\u6cd5\u7684\u540d\u5b57\uff0c\u5c31\u76f8\u5f53Fbean\u6807\u7b7e\u4e2d\u7684d\u5c5e\u6027\n    \/\/\u8fd9\u4e2a\u65b9\u6cd5\u7684\u8fd4\u56de\u503c\uff0c\u5c31\u76f8\u5f53Fbean\u6807\u7b7e\u4e2d\u7684class\u5c5e\u6027\n    @Bean\n    public User getUser(){\n        return new User();\/\/\u5c31\u662f\u8fd4\u56de\u8981\u6ce8\u5165\u5230bean\u7684\u5bf9\u8c61!\n    }\n}\n<\/code><\/pre>\n<p>\u6d4b\u8bd5\u7c7b\uff1a<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class MyTest {\n    public static void main(String[] args) {\n        \/\/\u5982\u679c\u5b8c\u5168\u4f7f\u7528J\u914d\u7f6e\u7c7b\u65b9\u5f0f\u53bb\u505a\uff0c\u6211\u4eec\u5c31\u53ea\u80fd\u901a\u8fc7AnnotationConfig\u4e0a\u4e0b\u6587\u6765\u83b7\u53d6\u5bb9\u5668\uff0c\u901a\u8fc7\u914d\u7f6e\u7c7b\u7684cLass\u5bf9\u8c61\u52a0\u8f7d!\n        ApplicationContext context=new AnnotationConfigApplicationContext(CuoniConfig.class);\n        User user=context.getBean(\"user\",User.class);\n        System.out.println(user.getName());\n    }\n}\n<\/code><\/pre>\n<h2>\u4ee3\u7406\u6a21\u5f0f<\/h2>\n<h4>1\u3001\u9759\u6001\u4ee3\u7406<\/h4>\n<p>\u89d2\u8272\u5206\u6790:<br \/>\n\u25cf\u62bd\u8c61\u89d2\u8272: -\u822c\u4f1a\u4f7f\u7528\u63a5\u53e3\u6216\u8005\u62bd\u8c61\u7c7b\u6765\u89e3\u51b3<br \/>\n\u25cf\u771f\u5b9e\u89d2\u8272:\u88ab\u4ee3\u7406\u7684\u89d2\u8272<br \/>\n\u25cf\u4ee3\u7406\u89d2\u8272:\u4ee3\u7406\u771f\u5b9e\u89d2\u8272\uff0c\u4ee3\u7406\u771f\u5b9e\u89d2\u8272\u540e,\u6211\u4eec\u4e00\u822c\u4f1a\u505a- -\u4e9b\u9644\u5c5e\u64cd\u4f5c<br \/>\n\u25cf\u5ba2\u6237:\u8bbf\u95ee\u4ee3\u7406\u5bf9\u8c61\u7684\u4eba!<\/p>\n<p>\u4ee3\u7801\u6b65\u9aa4<\/p>\n<p>1\u3001\u63a5\u53e3<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public interface Rent {\n    public void rent();\n<\/code><\/pre>\n<p>2\u3001\u771f\u5b9e\u89d2\u8272<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class Host implements Rent{\n    public void rent() {\n        System.out.println(\"\u623f\u4e1c\u8981\u51fa\u79df\u623f\u5b50\");\n    }\n}\n<\/code><\/pre>\n<p>3\u3001\u4ee3\u7406\u89d2\u8272<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class Proxy implements Rent{\n    private Host host;\n\n    public Proxy() {\n    }\n\n    public Proxy(Host host) {\n        this.host = host;\n    }\n\n    public void rent() {\n        seeHouse();\n        host.rent();\n        hetong();\n        fare();\n    }\n    public void seeHouse(){\n        System.out.println(\"\u4e2d\u4ecb\u5e26\u4f60\u770b\u623f\");\n    }\n    public void fare(){\n        System.out.println(\"\u4e2d\u4ecb\u6536\u4e2d\u4ecb\u8d39\");\n    }\n    public void hetong(){\n        System.out.println(\"\u4e2d\u4ecb\u5e26\u4f60\u7b7e\u5408\u540c\");\n    }\n}\n<\/code><\/pre>\n<p>4\u3001\u5ba2\u6237\u7aef\u8bbf\u95ee\u4ee3\u7406\u89d2\u8272<\/p>\n<pre><code class=\"language-java\" lang=\"java\">public class Client {\n    public static void main(String[] args) {\n        Host host=new Host();\n\/\/        host.rent();\n        Proxy proxy=new Proxy(host);\n        proxy.rent();\n    }\n}\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u4ee3\u7406\u6a21\u5f0f\u7684\u597d\u5904:<br \/>\n\u25cf\u53ef\u4ee5\u4f7f\u771f\u5b9e\u89d2\u8272\u7684\u64cd\u4f5c\u66f4\u52a0\u7eaf\u7cb9!\u4e0d\u7528\u53bb\u5173\u6ce8\u4e00 \u4e9b\u516c\u5171\u7684\u4e1a\u52a1<br \/>\n\u25cf\u516c\u5171\u4e5f\u5c31\u5c31\u4ea4\u7ed9\u4ee3\u7406\u89d2\u8272!\u5b9e\u73b0\u4e86\u4e1a\u52a1\u7684\u5206\u5de5!<br \/>\n\u25cf\u516c\u5171\u4e1a\u52a1\u53d1\u751f\u6269\u5c55\u7684\u65f6\u5019\uff0c\u65b9\u4fbf\u96c6\u4e2d\u7ba1\u7406!<br \/>\n\u7f3a\u70b9:<br \/>\n\u25cf\u4e00\u4e2a\u771f\u5b9e\u89d2\u8272\u5c31\u4f1a\u4ea7\u751f\u4e00\u4e2a\u4ee3\u7406\u89d2\u8272;\u4ee3\u7801\u91cf\u4f1a\u7ffb\u500d\u5f00\u53d1\u6548\u7387\u4f1a\u53d8\u4f4e~<\/p>\n","protected":false},"excerpt":{"rendered":"<p>spring IOC\u521b\u5efa\u5bf9\u8c61 1.\u4f7f\u7528\u65e0\u53c2\u6784\u9020\u521b\u5efa\u5bf9\u8c61\uff0c\u9ed8\u8ba4 2.\u4f7f\u7528\u6709\u53c2\u6784\u9020\u5bf9\u8c61\uff1a 1.\u4e0b\u6807\u8d4b\u503c\uff1a &lt; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daishen.ltd\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daishen.ltd\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":1,"href":"https:\/\/daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":46,"href":"https:\/\/daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions\/46"}],"wp:attachment":[{"href":"https:\/\/daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}