spring框架入门

spring框架(入门一)

  spring框架的只要任务就是为了降低程序之间的耦合性,我们之前写的三层架构的写法通常是通过是new的方式来调用方法,

  比如 AccountDao ad = new AccountDaoImpl();

  现在我们通过spring框架来降低程序之间的耦合性,代替部分的new的方法,来提高程序的效率。

  引入spring框架

  1.首先要导包,maven工程中如果电脑联网可以自动下载。

  2.配置pom.xml文件,导入spring。

<dependencies>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
</dependencies>

  3.这时我们,就可以先模拟一下web中的三层架构的开发模式,第一次展示层,第二次业务层,第三次持久层(数据库)
  3.1先来业务层 创建业务层接口 IAccountService 写人一个保存方法
  public interface IAccountService{
    public void SaveAccount();
}
  3.2创建业务层实现类 ACCountServiceImpl implements IAccountService {
    此时此刻,传统的方法是就是通过new的方法 来引入持久层的方法,通过持久层的方法来对数据库进行操作
 
    但今天的spring中,我们不用new方法,我用spring的方法来解耦
    private AccountDao accountdao;
    创建出来accountdao中的get set方法
    上述操作代替传统中的 AccountDao accountdao = new AccountDaoImpl();

    //保存方法模拟
    public void saveAccount(){
    accountDao.saveaccount();    

}
3.3创建出来模拟的持久层接口
  public interface IAccountDao {
  
  public void saveAccount();
  
}
持久层接口的实现类

public class AccountDaoImpl implements IAccountDao{
  
  public void saveAccount(){
    system.out.println("模拟的保存方法成功!!");
}
}

  3.4上面三层架构的内容我们已经写完了,在三层架构中我们还用了spring的方法,接下来我们就要配置spring
  在recourses根目录下创建出spring的xml配置文件,文件名可以自定义,这里写为bean.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

  接着我们进行配置
  <bean id="这个id是自定义了,为了更加直观,我们起一样的名字accountDao" class="定位到具体位置,...accountServiceImpl">
    //定位了到了之前需要new来使用持久层的位置,但我们现在要用spring,不用new了。并且在业务层实现类中也配套了spring对应的方法getset
    //此时我们一层的bean是无法继续调用accountDao的内容了
    //我们进行再一次的定位,再原有bean的基础上,所以该操作还需要再这个bean目录下进行,bean内部需要使用新标签
    //这个name要与实体类保持一致 自定义名字 在下一个bean中具体进行描述
    <property name="accountDao" ref="accountdao"></property>
    //子标签使用property 这里我们就要知道一下 为什么在这个子标签中要用ref标签,
    //因为在accountDaoImpl里面还有很多种方法,如果用class就没办法定义到具体的方法,所以我们用ref标签,然后我在新的
    //bean中,再对方法进行具体定义   
</bean>

  //此时我就要具体来为ref标签具体的定位
<bean id ="accountdao" class="....AccountDaoImpl" ></bean>   
}


  3.5此时 spring的xml文件已经配置好,我们模拟实现层来实现这个三层架构的操作
  
public class Client{
  //第一步一定是读取spring的bean.xml的主配置文件
  ApplicationContext applicationContext =new ClassPathXmlApplicationContext("bean.xml");

  //第二步是调用我们配置的bean,然后接口的字节码文件
  IAccountService accountService = applicationContext.getBean("accountService", IAccountService.class);

  
//第三步就是调用方法
  accountService.saveAccount();

}

上述就是spring解耦的操作,换言之就是将原本new出来的方法 使用为get set方法替代,然后再spring 中的bean.xml 文件中对 get set进行配置与定位 来起到解耦的作用。

  



















  

  

 

posted @ 2021-02-04 14:19  煎饼侠是我  阅读(87)  评论(0)    收藏  举报