博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring中的自动装配
阅读量:4957 次
发布时间:2019-06-12

本文共 2646 字,大约阅读时间需要 8 分钟。

src\dayday\Person.java

package dayday; /**  * Created by I am master on 2016/11/28.  */ public class Person {
private String name; private int age; private City city; private Car car; public void setName(String name){
this.name=name; } public void setAge(int age){
this.age=age; } public void setCity(City city){
this.city=city; } public void setCar(Car car){
this.car=car; } public void toprint(){
System.out.println("["+"name="+name+" age="+age+" car"+car+" city"+city+"]"); } }

src\daydayCity.java

package dayday; /**  * Created by I am master on 2016/11/28.  */ public class City {
private String livecity; private String street; public void setLivecity(String livecity) {
this.livecity=livecity; } public void setStreet(String street{
this.street=street; } public String getLivecity(){
return livecity; } public String getStreet(){
return street; } public String toString(){
return "["+"city="+livecity+" street"+street +"]"; } }

src\dayday\Car.java

package dayday; /**  * Created by I am master on 2016/11/28.  */ public class Car {
private String name; public void setName(String name){
this.name=name; } public String getName(){
return name; } public String toString(){
return "["+"carname="+name+"]"; } }

src\dayday\Main.java

package dayday; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /**  * Created by I am master on 2016/11/28.  */ public class Main {
public static void main(String[] args){
ApplicationContext ctx= new ClassPathXmlApplicationContext("beans.xml"); Person person1=ctx.getBean("person1",Person.class); Person person2=ctx.getBean("person1",Person.class); person1.toprint(); person2.toprint(); } }

src\beans.xml<?xml version="1.0" encoding="UTF-8"?>

运行结果

[name=dayday age=18 car[carname=Audi] city[city=shaoxing streetxinchang]]

[name=dayday age=18 car[carname=Audi] city[city=shaoxing streetxinchang]]

 

装配机制

byName根据bean的名字和当前bean的setter风格的属性名进行自动匹配,若有匹配的,则进行自动装配,若没有匹配的,则不装配

比如bean中有setXXX()的方法,且在配置文件中,bean中id="XXX"则可进行自动装配,id="XXX1"就不可以装配

byType根据bean的类型和当前bean的属性进行自动装配,若IOC容器中有一个及以上的类型匹配的bean,则将抛出异常

在实际开发中很少用自动装配,因为代码不够一目了然,而且存在很多局限性,如不能两种装配方式同时进行,如果选择了自动了装配,就不能手动配置...

 

 

转载于:https://www.cnblogs.com/Hdaydayup/p/6112639.html

你可能感兴趣的文章
iOS自动自动隐藏软键盘
查看>>
leetcode 234 回文链表
查看>>
springmvc 异常Interceptor
查看>>
SpringMVC 拦截器
查看>>
雷林鹏分享:jQuery EasyUI 布局 - 在面板中创建复杂布局
查看>>
雷林鹏分享:PHP SimpleXML
查看>>
又开始搞C#了!!我勒个去!!!
查看>>
Java防止SQL注入
查看>>
安天移动安全联合猎豹移动首次揭露“Operation Manul”疑似在Android端的间谍软件行为...
查看>>
Python pip 依赖包的引入
查看>>
数据库设计 - 1
查看>>
团队作业9——展示博客(Bata版本)
查看>>
关于 edittext 软键盘退出监听解决办法
查看>>
Spring AOP 的实现
查看>>
Android开发adb环境配置
查看>>
获取微信AccessToken,保存在内存中,过期后重新获取
查看>>
用 const 还是用 let?
查看>>
bzoj5292:[Bjoi2018]治疗之雨
查看>>
bzoj5336:[TJOI2018]party
查看>>
语音合成最新进展
查看>>