?????? Spring是當(dāng)前比較流行的基于Java語(yǔ)言的MVC框架,所謂框架也就是它已經(jīng)實(shí)現(xiàn)好了諸多東西,使java開(kāi)發(fā)人員能把精力盡量放在業(yè)務(wù)邏輯上.
?????? Spring技術(shù)的特點(diǎn)是IOC, 即反向注入,主要應(yīng)用的是XML技術(shù)和POJO(簡(jiǎn)單Java對(duì)象),Spring要達(dá)到的目的其實(shí)很簡(jiǎn)單,就是盡量簡(jiǎn)化原來(lái)Java中的地層數(shù)據(jù)訪(fǎng)問(wèn)的問(wèn)題,眾所周知,傳統(tǒng)的使用Java訪(fǎng)問(wèn)地層數(shù)據(jù)庫(kù)的方法是使用JDBC,如下的代碼:
?? try{
?????? }catch(SQLException e){
?????????????????? Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");/以MS SQL SERVER為例
?????????????????? Connection conn=DriverManager.getConnection(connurl,username,password);
???????????????? ? Statement stmt=conn.createStatement();
??????????????? ? ?ResultSet rs=stmt.executeQuery(sql);
???????? //實(shí)現(xiàn)業(yè)務(wù)邏輯的代碼
???????????????????System.out.println("產(chǎn)生異常:"+e);
????????? }
可以看到為了訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),我們需要這么多多余的模式的代碼,而且又要拋出不同的異常,代碼可維護(hù)性比較差,而且不利于開(kāi)發(fā)人員把精力投放到最終的業(yè)務(wù)邏輯上.上邊的功能如果選擇使用Spring實(shí)現(xiàn),那就變得的非常簡(jiǎn)單了:
??<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
??<property name="url" value="${database.url}"></property>
??<property name="driverClassName" value="${database.driver}"></property>
??<property name="username" value="${database.user}"></property>
??<property name="password" value="${database.password}"></property>
?</bean>??
我們只需要培植上文的XML文件,然后在真正使用數(shù)據(jù)庫(kù)時(shí),用
????? ApplicationContext?? ctx=new?? FileSystemXmlApplicationContext("beans.xml");
??????? DriverManagerDataSource ds=(DriverManagerDataSource)ctx.getBean("datasource");
兩條語(yǔ)句完成數(shù)據(jù)源的獲得,這就簡(jiǎn)化掉了相當(dāng)多的模式代碼,讓我們更加關(guān)心業(yè)務(wù)邏輯的實(shí)現(xiàn)了~?
?????
?????? Spring技術(shù)的特點(diǎn)是IOC, 即反向注入,主要應(yīng)用的是XML技術(shù)和POJO(簡(jiǎn)單Java對(duì)象),Spring要達(dá)到的目的其實(shí)很簡(jiǎn)單,就是盡量簡(jiǎn)化原來(lái)Java中的地層數(shù)據(jù)訪(fǎng)問(wèn)的問(wèn)題,眾所周知,傳統(tǒng)的使用Java訪(fǎng)問(wèn)地層數(shù)據(jù)庫(kù)的方法是使用JDBC,如下的代碼:
?? try{
?????? }catch(SQLException e){
?????????????????? Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");/以MS SQL SERVER為例
?????????????????? Connection conn=DriverManager.getConnection(connurl,username,password);
???????????????? ? Statement stmt=conn.createStatement();
??????????????? ? ?ResultSet rs=stmt.executeQuery(sql);
???????? //實(shí)現(xiàn)業(yè)務(wù)邏輯的代碼
???????????????????System.out.println("產(chǎn)生異常:"+e);
????????? }
可以看到為了訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),我們需要這么多多余的模式的代碼,而且又要拋出不同的異常,代碼可維護(hù)性比較差,而且不利于開(kāi)發(fā)人員把精力投放到最終的業(yè)務(wù)邏輯上.上邊的功能如果選擇使用Spring實(shí)現(xiàn),那就變得的非常簡(jiǎn)單了:
??<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
??<property name="url" value="${database.url}"></property>
??<property name="driverClassName" value="${database.driver}"></property>
??<property name="username" value="${database.user}"></property>
??<property name="password" value="${database.password}"></property>
?</bean>??
我們只需要培植上文的XML文件,然后在真正使用數(shù)據(jù)庫(kù)時(shí),用
????? ApplicationContext?? ctx=new?? FileSystemXmlApplicationContext("beans.xml");
??????? DriverManagerDataSource ds=(DriverManagerDataSource)ctx.getBean("datasource");
兩條語(yǔ)句完成數(shù)據(jù)源的獲得,這就簡(jiǎn)化掉了相當(dāng)多的模式代碼,讓我們更加關(guān)心業(yè)務(wù)邏輯的實(shí)現(xiàn)了~?
?????