eclipseでSpring 2を構築する.5フレーム
依存注入:実行時に外部コンテナからコンポーネントに動的に依存オブジェクトを注入する
制御反転:アプリケーション自体は依存オブジェクトの作成とメンテナンスを担当せず、依存オブジェクトの作成とメンテナンスは外部ウィンドウが負
責める.このように制御権はアプリケーションから外部容器に移行し,制御権の移行はいわゆる反転である.
Springの主な特性.
(1)コンポーネント間の結合度を低減し,ソフトウェア各層間のデカップリングを実現する.
(2)トランザクション管理サービス、メッセージサービス、JMSサービス、永続化サービスなど、コンテナを使用して提供できる多くのサービス
務など.
(3)コンテナは単一のモデルサポートを提供し,開発者は実装コードを自分で作成する必要がなくなった.
(4)容器はAOP技術を提供し,それを利用して権限遮断,運転期間監視などの機能を容易に実現する.
(5)JdbcTemplate,
HibernateTemplate.
(6)主流の応用フレームワークに対して統合サポートを提供した.
まず、公式サイトでspring 2をダウンロードします.5.zipパッケージ、
ファイルを解凍しlibディレクトリを見つけ、
commons-attributes-api.jar
commons-attributes-compiler.jar
commons-logging.jar
log4j-1.2.15.jar
spring-beans.jar
spring-context.jar
spring-core.jar
以上はspringのコアパッケージが入っているだけで、aopサポートが必要な場合は別途加入する必要がある.
eclipseで新しいプロジェクトを作成し、
そして、上記のjarパケットをlibディレクトリにコピーする.
パッケージの作成:
pack.java.iuserdao.
IuserDaoインタフェース
パッケージを作成します.java.userdaoimpl.
簡単な単例モードを確立する.
最後に、テストクラスに書き込みます.
テスト結果、
---------------------------------------------------------------------------
My Name Is AdminMy Name Is周海濤
List集合出力は以下の通り:広東省深セン市湖南省株洲市陝西省西安市
set集合出力は以下の通りである:バスケットボール卓球をしてサッカーをする
map集合出力は以下の通りである:key 1,張三key 2,李四key 3,王五
制御反転:アプリケーション自体は依存オブジェクトの作成とメンテナンスを担当せず、依存オブジェクトの作成とメンテナンスは外部ウィンドウが負
責める.このように制御権はアプリケーションから外部容器に移行し,制御権の移行はいわゆる反転である.
Springの主な特性.
(1)コンポーネント間の結合度を低減し,ソフトウェア各層間のデカップリングを実現する.
(2)トランザクション管理サービス、メッセージサービス、JMSサービス、永続化サービスなど、コンテナを使用して提供できる多くのサービス
務など.
(3)コンテナは単一のモデルサポートを提供し,開発者は実装コードを自分で作成する必要がなくなった.
(4)容器はAOP技術を提供し,それを利用して権限遮断,運転期間監視などの機能を容易に実現する.
(5)JdbcTemplate,
HibernateTemplate.
(6)主流の応用フレームワークに対して統合サポートを提供した.
まず、公式サイトでspring 2をダウンロードします.5.zipパッケージ、
ファイルを解凍しlibディレクトリを見つけ、
commons-attributes-api.jar
commons-attributes-compiler.jar
commons-logging.jar
log4j-1.2.15.jar
spring-beans.jar
spring-context.jar
spring-core.jar
以上はspringのコアパッケージが入っているだけで、aopサポートが必要な場合は別途加入する必要がある.
eclipseで新しいプロジェクトを作成し、
そして、上記のjarパケットをlibディレクトリにコピーする.
パッケージの作成:
pack.java.iuserdao.
IuserDaoインタフェース
package pack.java.iuserdao;
public interface IuserDao {
public String userdao(String name);
}
パッケージを作成します.java.userdaoimpl.
package pack.java.userdaoimpl;
import java.io.Serializable;
import pack.java.iuserdao.IuserDao;
public class UserDaoImpl implements IuserDao, Serializable {
private static final long serialVersionUID = 4746185155498963758L;
public String userdao(String name) {
// TODO Auto-generated method stub
return "My Name Is "+name;
}
}
簡単な単例モードを確立する.
package pack.java.spring;
import pack.java.userdaoimpl.UserDaoImpl;
/**
* ;
* @author Administrator
*
*/
public class UserDapSingleFactory {
private static UserDaoImpl userDaoImpl;
private UserDapSingleFactory(){}
public static UserDaoImpl getUserDaoSingleFactory(){
if(userDaoImpl==null){
return new UserDaoImpl();
}
return userDaoImpl;
}
}
Spring applicationContext.xml :
<?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-2.5.xsd">
<!-- UserDao -->
<bean id="userdaoimpl" class="pack.java.userdaoimpl.UserDaoImpl"/>
<!-- SingleFactory -->
<bean id="sigleFactory" class="pack.java.spring.UserDapSingleFactory" factory-method="getUserDaoSingleFactory"/>
<!-- SprigDao -->
<bean id="springDemo" class="pack.java.userdaoimpl.SpringDemo">
<property name="userdaoimpl" ref="userdaoimpl"></property>
<property name="addressList">
<list>
<value type="java.lang.String"> </value>
<value type="java.lang.String"> </value>
<value type="java.lang.String"> </value>
</list>
</property>
<property name="likeSet">
<set>
<value> </value>
<value> </value>
<value> </value>
</set>
</property>
<property name="nameMap">
<map>
<entry key="key1" value=" "></entry>
<entry key="key2" value=" "></entry>
<entry key="key3" value=" "></entry>
</map>
</property>
</bean>
</beans>
最後に、テストクラスに書き込みます.
package pack.java.userdaoimpl;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pack.java.iuserdao.IuserDao;
import pack.java.spring.UserDapSingleFactory;
public class SpringDemo {
// , ;
private IuserDao userdaoimpl;
private UserDapSingleFactory sigleFactoryImpl;
private List<String> addressList;
private Map<String,String> nameMap;
private Set<String> likeSet;
public void setNameMap(Map<String, String> nameMap) {
this.nameMap = nameMap;
}
public void setLikeSet(Set<String> likeSet) {
this.likeSet = likeSet;
}
public void setAddressList(List<String> addressList) {
this.addressList = addressList;
}
public void setSigleFactoryImpl(UserDapSingleFactory sigleFactoryImpl) {
this.sigleFactoryImpl = sigleFactoryImpl;
}
public void setUserdaoimpl(IuserDao userdaoimpl) {
this.userdaoimpl = userdaoimpl;
}
@SuppressWarnings("static-access")
private void displayInfo(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
SpringDemo springDemo=(SpringDemo) applicationContext.getBean("springDemo");
String str=springDemo.userdaoimpl.userdao("Admin");
System.out.println(str);
UserDaoImpl iuserDao=springDemo.sigleFactoryImpl.getUserDaoSingleFactory();
System.out.println(iuserDao.userdao(" "));
System.out.println("
list :");
for(String strList:springDemo.addressList){
System.out.println(strList);
}
System.out.println("
set :");
for(String like:springDemo.likeSet){
System.out.println(like);
}
System.out.println("
map :");
for(Iterator<String> iterator=springDemo.nameMap.keySet().iterator();iterator.hasNext();){
String key=iterator.next();
System.out.println(key+","+springDemo.nameMap.get(key));
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new SpringDemo().displayInfo();
}
}
テスト結果、
---------------------------------------------------------------------------
My Name Is AdminMy Name Is周海濤
List集合出力は以下の通り:広東省深セン市湖南省株洲市陝西省西安市
set集合出力は以下の通りである:バスケットボール卓球をしてサッカーをする
map集合出力は以下の通りである:key 1,張三key 2,李四key 3,王五