日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > Spring――IOC(三)

Spring――IOC(三)

來源:程序員人生   發布時間:2015-02-11 08:33:43 閱讀次數:3279次

6、集合注入

(1)假定UserDAOImpl中有setslists,maps3個集合屬性

package com.zgy.impl;

 

import java.util.List;

import java.util.Map;

import java.util.Set;

 

import com.zgy.dao.UserDAO;

import com.zgy.model.User;

 

public class UserDAOImpl implements UserDAO{

private Set<String> sets;

private List<String> lists;

private Map<String,String> maps;

public Set<String> getSets() {

return sets;

}

public void setSets(Set<String> sets) {

this.sets = sets;

}

public List<String> getLists() {

return lists;

}

public void setLists(List<String> lists) {

this.lists = lists;

}

public Map<String, String> getMaps() {

return maps;

}

public void setMaps(Map<String, String> maps) {

this.maps = maps;

}

public void save(User u) {

System.out.println("user saved");

}

public String toString(){

return "sets size"+sets.size()+"| lists size:"+lists.size()+"| maps size"+maps.size();

}

}

(2)配置文件中配集合元素的值

<?xml version="1.0" encoding="UTF⑻"?>

<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⑵.5.xsd">

<!-- bean也能夠使用name來標識 -->

<bean name="userDAO" class="com.zgy.impl.UserDAOImpl">

<property name="sets">

<set>

<value>1</value>

<value>2</value>

</set>

</property>

<property name="lists">

<list>

<value>1</value>

<value>2</value>

<value>3</value>

</list>

</property>

<property name="maps">

<map>

<entry key="1" value="1"></entry>

<entry key="2" value="2"></entry>

<entry key="3" value="3"></entry>

<entry key="4" value="4"></entry>

</map>

</property>

</bean>

<bean name="userService" class="com.zgy.service.UserService" scope="prototype">

<!-- <property name="userDAO" ref="u" /> -->

<constructor-arg>

<ref bean="u"/>

</constructor-arg>

</bean>

</beans>

(3)驗證:

package com.bjsxt.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zgy.dao.UserDAO;

 

 

public class UserServiceTest {

 

@Test

public void testAdd() throws Exception {

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");

UserDAO userDAO = (UserDAO) applicationContext.getBean("userDAO");

System.out.println(userDAO);

}

 

}

(4)結果:

sets size2| lists size:3| maps size4

 

 

 

7、自動裝配

自動裝配的方式有以下幾種實現情勢:

 

byName、byType、autodetect、constructor、default、no

以下測試byName的情勢的自動裝配

1)假定有以下的配置文件,配置了以下的3個bean

userDAO、userDAO2userService

配置文件以下:

<?xml version="1.0" encoding="UTF⑻"?>

<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⑵.5.xsd">

<!-- bean也能夠使用name來標識 -->

<bean name="userDAO" class="com.zgy.impl.UserDAOImpl">

<property name="daoId" value="1"></property>

</bean>

 

<bean name="userDAO2" class="com.zgy.impl.UserDAOImpl">

<property name="daoId" value="2"></property>

</bean>

<bean name="userService" class="com.zgy.service.UserService" autowire="byName">

</bean>

</beans>

 

以上的配置中,userService這個bean是由按名稱自動裝配的,在UserService中含有UserDAO這個對象,所以,依照byName的方式可以找到userDAO這個bean,完成自動裝配。

(2)UserService類以下:

package com.zgy.service;

 

import com.zgy.dao.UserDAO;

import com.zgy.model.User;

 

public class UserService {

private UserDAO userDAO;

public void add(User u){

this.userDAO.save(u);

}

 

public UserDAO getUserDAO() {

return userDAO;

}

 

public void setUserDAO(UserDAO userDAO) {

this.userDAO = userDAO;

}

}

(3)UserDAOImpl類以下:

package com.zgy.impl;

 

import com.zgy.dao.UserDAO;

import com.zgy.model.User;

 

public class UserDAOImpl implements UserDAO{

private int daoId;

 

public int getDaoId() {

return daoId;

}

 

public void setDaoId(int daoId) {

this.daoId = daoId;

}

 

@Override

public void save(User u) {

System.out.println("user saved");

}

@Override

public String toString(){

return "daoId="+daoId;

}

}

(4)測試:

package com.bjsxt.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zgy.dao.UserDAO;

import com.zgy.service.UserService;

 

 

public class UserServiceTest {

 

@Test

public void testAdd() throws Exception {

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");

UserService userService= (UserService) applicationContext.getBean("userService");

System.out.println(userService.getUserDAO());

}

 

}

 

(5)結果:

daoId=1

 

 

 

以下測試byType的情勢的自動裝配

(1)修改配置文件成以下情勢;

<?xml version="1.0" encoding="UTF⑻"?>

<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⑵.5.xsd">

<!-- bean也能夠使用name來標識 -->

<!-- 

<bean name="userDAO" class="com.zgy.impl.UserDAOImpl">

<property name="daoId" value="1"></property>

</bean>

  -->

<bean name="userDAO2" class="com.zgy.impl.UserDAOImpl">

<property name="daoId" value="2"></property>

</bean>

<bean name="userService" class="com.zgy.service.UserService" autowire="byType">

</bean>

</beans>

 

(2)再次測試

(3)結果:

daoId=2


8、生命周期

A)在配置文件中,配置1個bean的時候,可以指定1個lazy-init屬性,該屬性設置為true的時候,指明該bean先不進行初始化,而是在用到的時候,在使用getBean的時候才會初始化該bean。使用的場景:利用啟動時間太長,可使用此方法。

 

B)init-methoddestory-method不要和prototype1起使用

 

(1)UserService類中增加init()destory()方法:

package com.zgy.service;

 

import com.zgy.dao.UserDAO;

import com.zgy.model.User;

 

public class UserService {

private UserDAO userDAO;

public void init(){

System.out.println("init");

}

public void add(User u){

this.userDAO.save(u);

}

 

public UserDAO getUserDAO() {

return userDAO;

}

 

public void setUserDAO(UserDAO userDAO) {

this.userDAO = userDAO;

}

public void destory(){

System.out.println("destroy");

}

}

 

(2)配置文件中的配置以下:

<?xml version="1.0" encoding="UTF⑻"?>

<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⑵.5.xsd">

<!-- bean也能夠使用name來標識 -->

 

<bean name="u" class="com.zgy.impl.UserDAOImpl">

</bean>

<bean name="userService" class="com.zgy.service.UserService" init-method="init" destroy-method="destory">

</bean>

</beans>

(3)測試:

package com.bjsxt.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zgy.dao.UserDAO;

import com.zgy.service.UserService;

 

 

public class UserServiceTest {

 

@Test

public void testAdd() throws Exception {

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");

UserService userService= (UserService) applicationContext.getBean("userService");

applicationContext.destroy();

}

 

}

 

(4)結果:

init

 

Destroy

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲成人www | 黄色av网 | 国产一区福利 | 国产高清视频在线 | 中文激情网 | 国产午夜精品一区二区三区 | 91精品一区二区三区久久久久久 | 成人av在线网站 | 密桃av| 欧美精选一区 | 国产高清一级毛片在线不卡 | 五月激情综合网 | 日韩视频在线一区二区 | 日韩精品成人免费观看视频 | 国产一二 | av久久久| 黄色高清美女免费网站 | 国产欧美日韩综合精品一区二区 | 国产在线播放一区 | 亚洲不卡在线观看 | 日韩免费一区 | 成人美女免费网站视频 | 国产一区二区电影 | 韩国日本美国免费毛片 | 国产91在线 | 亚洲 | 色精品| 欧美国产综合视频 | 日韩欧美一区二区三区免费观看 | 亚洲成人一区 | 亚洲一区二区免费 | 免费国产一区二区三区 | 亚洲精品在线播放 | 一区二区三区在线视频免费观看 | 91精品国产99久久久久久红楼 | 欧美三级网 | 亚洲福利视频在线 | 日韩亚州 | 中文字幕网站 | 精品自拍视频在线观看 | 成人av观看 | 日本一区二区三区四区高清视频 |