spring学习(四):配置文件xml

xiaoxiao2021-02-28  134

这章主要讲配置文件,String[],List,Map,Set,自定义对象怎么配置,bean 的作用域,自动装配,我定义一个Student类,大家想想对应的配置文件该怎么写?

一:配置

   配置文件名字可以随便取,只要xml文件上面的规范是spring 的就行

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

(1).代码

public class Student { private String name; private Address addr; private String[] books; private List hobbies; private Map cards; private Set games; private String wife; private Properties info; public void setName(String name) { this.name = name; } public void setAddr(Address addr) { this.addr = addr; } public void setBooks(String[] books) { this.books = books; } public void setHobbies(List hobbies) { this.hobbies = hobbies; } public void setCards(Map card) { this.cards = card; } public void setGames(Set games) { this.games = games; } public void setWife(String wife) { this.wife = wife; } public void setInfo(Properties info) { this.info = info; } public void show(){ System.out.println("name="+name+" addr="+addr.getAddress()); System.out.println("books="); for(int i=0;i <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="addr" class="cn.sxt.vo.Address" scope="request"> <property name="address" value="北京西三旗"/> </bean> <bean id="student" class="cn.sxt.vo.Student"> <property name="name" value="刘德华"/> <property name="addr" ref="addr"/> <property name="books"> <array> <value>金瓶梅</value> <value>红楼梦之梦</value> <value>雾都孤儿</value> </array> </property> <property name="hobbies"> <list> <value>羽毛球</value> <value>乒乓球</value> <value>玻璃球</value> <value>台球球</value> </list> </property> <property name="cards"> <map> <entry key="中国银行" value="149127348932174"/> <entry> <key><value>建设银行</value></key> <value>622710023478234234</value> </entry> </map> </property> <property name="games"> <set> <value>lol</value> <value>dota</value> <value>cs1.6</value> <value>dnf</value> </set> </property> <property name="wife"><null/></property> <property name="info"> <props> <prop key="学号">2015052601</prop> <prop key="sex">男</prop> <prop key="name">小明</prop> </props> </property> </bean> <!-- p命名空间注入 属性依然要设置set方法 --> <bean id="user" class="cn.sxt.vo.User" p:name="风清扬" p:age="230"/> <!-- c命名空间注入要求有对应参数的构造方法 --> <bean id="u1" class="cn.sxt.vo.User" c:name="nico" c:age="16"/> </beans> 二:bean的作用域     singleton单列  整个容器中只有一个对象实例 默认是单列     prototype原型 每次获取bean都产生一个新的对象     request 每次请求时创建一个新的对象     session 在会话的范围内时一个对象     global session 只在portlet下有用,表示是application     application 在应用范围中一个对象 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- bean的作用域 singleton单列 整个容器中只有一个对象实例 默认是单列 prototype原型 每次获取bean都产生一个新的对象 request 每次请求时创建一个新的对象 session 在会话的范围内时一个对象 global session 只在portlet下有用,表示是application application 在应用范围中一个对象 --> <bean id="addr" class="cn.sxt.vo.Address" scope="request"> <property name="address" value="北京西三旗"/> </bean> </beans> 三:自动装配 想一想假如一个类的属性又一千个(一般没有,宝宝别怕),那么我们是不是要在配置文件里面写一千个属性的配置的代码,我滴个姑奶奶啊,表示我这种笔都买不起的高穷帅很无奈,这时候自动装配就起作用了,代码配置,我们可以看到配置文件中有这么一句 http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName"> 他是代表在整个配置文件中的bean都自动装配。 autowire:自动装配  简化spring配置,有下面几种模式可选   no不使用自动装配   byName 根据名称(set方法名来的)去查找相应的bean,如果有则装配上   byType 根据类型进行自动装配  不用管bean的id.但是同一种类型的bean只能有一个。建议慎用   constructor 当通过构造器 注入 实例化bean时 适用byType的方式 装配构造方法 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName"> <bean id="mysqlDao" class="cn.sxt.dao.impl.UserDaoMySqlImpl"/> <bean id="service" class="cn.sxt.service.impl.UserServiceImpl" autowire="byName"/> </beans>

转载请注明原文地址: https://www.6miu.com/read-46119.html

最新回复(0)