?????? Spring是當(dāng)前比較流行的基于Java語言的MVC框架,所謂框架也就是它已經(jīng)實(shí)現(xiàn)好了諸多東西,使java開發(fā)人員能把精力盡量放在業(yè)務(wù)邏輯上.
?????? Spring技術(shù)的特點(diǎn)是IOC, 即反向注入,主要應(yīng)用的是XML技術(shù)和POJO(簡單Java對象),Spring要達(dá)到的目的其實(shí)很簡單,就是盡量簡化原來Java中的地層數(shù)據(jù)訪問的問題,眾所周知,傳統(tǒng)的使用Java訪問地層數(shù)據(jù)庫的方法是使用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);
????????? }
可以看到為了訪問數(shù)據(jù)庫,我們需要這么多多余的模式的代碼,而且又要拋出不同的異常,代碼可維護(hù)性比較差,而且不利于開發(fā)人員把精力投放到最終的業(yè)務(wù)邏輯上.上邊的功能如果選擇使用Spring實(shí)現(xià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ù)庫時,用
????? ApplicationContext?? ctx=new?? FileSystemXmlApplicationContext("beans.xml");
??????? DriverManagerDataSource ds=(DriverManagerDataSource)ctx.getBean("datasource");
兩條語句完成數(shù)據(jù)源的獲得,這就簡化掉了相當(dāng)多的模式代碼,讓我們更加關(guān)心業(yè)務(wù)邏輯的實(shí)現(xiàn)了~?
?????