{"id":21974127,"url":"https://github.com/javaobjects/demo_spring04_di_three","last_synced_at":"2026-05-03T13:36:31.910Z","repository":{"id":105562388,"uuid":"192781755","full_name":"javaobjects/demo_spring04_di_three","owner":"javaobjects","description":null,"archived":false,"fork":false,"pushed_at":"2019-10-08T08:47:20.000Z","size":3199,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-28T03:17:17.375Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javaobjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-19T18:07:10.000Z","updated_at":"2019-10-08T08:47:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"5bcc1a06-17ee-40c7-959d-3219a275531e","html_url":"https://github.com/javaobjects/demo_spring04_di_three","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo_spring04_di_three","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo_spring04_di_three/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo_spring04_di_three/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2Fdemo_spring04_di_three/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javaobjects","download_url":"https://codeload.github.com/javaobjects/demo_spring04_di_three/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245033767,"owners_count":20550328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T15:38:45.521Z","updated_at":"2026-05-03T13:36:26.874Z","avatar_url":"https://github.com/javaobjects.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java-Spring依赖属性的构造函数注入\n\n1. 新建一个Java Project\n![](images/1.png)\n\n2. Java工程导jar包\n\n+ 创建一个lib文件夹\n![](images/2.png)\n![](images/3.png)\n**如图所示新建完成**\n![](images/4.png)\n\n+ 导入jar包\n![](images/5.png)\n![](images/6.png)\n\n+ 新建或导入配置文件\n![](images/7.png)\n**beans.xml**\n```\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans \n       http://www.springframework.org/schema/beans/spring-beans.xsd \n       http://www.springframework.org/schema/tx \n       http://www.springframework.org/schema/tx/spring-tx.xsd \n       http://www.springframework.org/schema/context \n       http://www.springframework.org/schema/context/spring-context.xsd\"\u003e\n\u003c/beans\u003e\n```\n3. 新建test/MyController  test/MyService test/MyDao\n![](images/8.png)\n\n**MyController**\n```\npackage test;\n\npublic class MyController {\n\n\tprivate MyService service;\n\t\n\tpublic MyController(MyService myService)\n\t{\n\t\tthis.service = myService;\n\t}\n\tpublic void login() \n\t{\n\t\tSystem.out.println(\"MyController login........\");\n\t\tservice.serviceLogin();\n\t}\n}\n```\n**MyService**\n```\npackage test;\n\npublic class MyService {\n\n\tprivate MyDao dao;//MyService依赖MyDao\n\t/**\n\t * 为咯给属性赋值 就在属性所在的\n\t * 类里面设置一个构造方法\n\t * 并且该构造方法接收一个该属性类开的参数\n\t * \u003cp\u003eTitle: \u003c/p\u003e  \n\t * \u003cp\u003eDescription: \u003c/p\u003e  \n\t * @param myDao\n\t */\n\tpublic MyService(MyDao myDao)\n\t{\n\t\tthis.dao = myDao;\n\t}\n\tpublic void serviceLogin() {\n\t\tSystem.out.println(\"MyService serviceLogin()......\");\n\t\tdao.queryUserByNameAndPwd();\n\t}\n}\n```\n**MyDao**\n```\npackage test;\n\npublic class MyDao {\n\n\tpublic void queryUserByNameAndPwd() \n\t{\n\t\tSystem.out.println(\"MyDao queryUserByNameAndPwd\");\n\t}\n}\n```\n4. 构造函数配置（亮点加重点）\n\n**beans.xml**\n\n```\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans \n       http://www.springframework.org/schema/beans/spring-beans.xsd \n       http://www.springframework.org/schema/tx \n       http://www.springframework.org/schema/tx/spring-tx.xsd \n       http://www.springframework.org/schema/context \n       http://www.springframework.org/schema/context/spring-context.xsd\"\u003e\n  \u003c!--      先配置最底层的Dao --\u003e\n       \u003cbean id=\"dao\" class=\"test.MyDao\"\u003e\u003c/bean\u003e\n       \u003cbean id=\"service\" class=\"test.MyService\"\u003e\n\u003c!--        构造函数注入     constructor-arg:构造器-参数 --\u003e\n\t\t\t\u003cconstructor-arg index=\"0\" ref=\"dao\"\u003e\u003c/constructor-arg\u003e\n       \u003c/bean\u003e\n       \u003cbean id=\"controller\" class=\"test.MyController\"\u003e\n       \t\t\t\u003cconstructor-arg index=\"0\" ref=\"service\"\u003e\u003c/constructor-arg\u003e\n       \u003c/bean\u003e\n\u003c/beans\u003e\n```\n5. 新建测试类测试\n![](images/9.png)\n\n**Test.java**\n```\npackage test;\n\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\npublic class Test {\n\n\tpublic static void main(String[] args) {\n\t\t//实例化spring容器及bean\n\t\tApplicationContext act = new ClassPathXmlApplicationContext(\"beans.xml\");\n//\t\t得到的是此处的controller\n//\t    \u003cbean id=\"controller\" class=\"test.MyController\"\u003e\n//\t\t\t\u003cconstructor-arg index=\"0\" ref=\"service\"\u003e\u003c/constructor-arg\u003e\n//        \u003c/bean\u003e\n\t\tMyController c = (MyController) act.getBean(\"controller\");\n\t\tc.login();\n\t}\n}\n```\n![](images/10.png)\n\n**如图所示测试成功**\n\n![](images/11.png)\n\n#### 总结\n\n属性注入的两种方式：\n\n1.构造函数注入：\n\n//需要在类中定义构造方法，并且接收参数，便于给属性赋值\n```\npublic MyController(MyService myService)\n\t{\n\t\tthis.service=myService;\n\t}\n\t\npublic MyService(MyDao myDao)\n\t{\n\t\tthis.dao=myDao;\n\t}\n```\n//接着在配置文件中对bean进行配置，特别注意给构造方法中的参数赋值\n```\n\t\u003cbean id=\"dao\" class=\"test.MyDao\"\u003e\n\t\n\t\u003c/bean\u003e\n\t\u003cbean id=\"service\" class=\"test.MyService\"\u003e\n\t\u003cconstructor-arg index=\"0\" ref=\"dao\"\u003e\u003c/constructor-arg\u003e\n\t\u003c/bean\u003e\n\t\n\t\n\t\u003cbean id=\"controller\" class=\"test.MyController\"\u003e\n\t\u003cconstructor-arg index=\"0\" ref=\"service\"\u003e\u003c/constructor-arg\u003e\n\t\u003c/bean\u003e\n```\n\n2.属性的setter方法注入\n```\n//需要提供属性的setter方法\n\n//需要在配置bean的时候使用标签\u003cproperty\u003e给属性赋值\n```\n**以上就是我对于 Java-Spring依赖属性的构造函数注入 知识点整理的全部内容** 另附[源码](https://github.com/javaobjects/demo_spring04_di_three)\n\n==================================================================\n#### 分割线\n==================================================================\n\n**博主为咯学编程：父母不同意学编程，现已断绝关系;恋人不同意学编程，现已分手;亲戚不同意学编程，现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏，金额不限。。。**\n\n![](https://upload-images.jianshu.io/upload_images/5227364-0824589594f944c7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fdemo_spring04_di_three","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavaobjects%2Fdemo_spring04_di_three","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fdemo_spring04_di_three/lists"}