java 项目中使用 sping (XML)

前期准备

Spring 是什么?

Spring 是一个开源框架

Spring 是为简化企业级开发而生的,spring 大大提高了 JavaBean 的功能(在 spring 出现以前 JavaBean 几乎要被 EJB 替换掉了)

Spring 是一个 IoC/DI 和 AOP 容器框架

 

Spring 的特性

Sping 是非侵入性的

IoC/DI: Inversion of Control / Dependency injection

AOP:Aspect oriented programming

一站式的框架

 

新建一个 java 项目,然后导入 spring 必要的架包:

现在我们使用 Spring 来实现一个添加用户的操作,功能描述

我们需要在 main 方法中实现一个增加用户的功能

整个功能需要按照 MVC 分层来实现

main 方法去访问 service,service 访问 DAO,DAO 去访问 model 并将信息存入数据库中

 

采用spring XML配置实现

先看一下目录结构:

然后代码如下:

public interface UserDao {
      public void save(User user);
}

接口 UserDao 就是定义一个保存用户到数据库的接口,可以让子类实现不同的保存用户形式。

public class UserDaoImp1 implements UserDao{
      public void save(User user){
             System.out.println("数据存入MYSQL");
             System.out.println(user.getName());
      }
}

UserDaoImp1 类实现了 UserDao,将用户存入MySQL,这里就用打印代替插入数据库了。

public class UserDaoImp2 implements UserDao{
      public void save(User user){
             System.out.println("数据存入Oracle");
             System.out.println(user.getName());
      }
}

UserDaoImp2 类实现了 UserDao,将用户存入 Oarcle,这里也用打印代替插入数据库了。

public class User {
      private int age;
      private String name;
 
      public int getAge() {
             return age;
      }
 
      public void setAge(int age) {
             this.age = age;
      }
 
      public String getName() {
             return name;
      }
 
      public void setName(String name) {
             this.name = name;
      }
}

User 实体类,用户有年龄和姓名

public class UserService {

       private UserDao userDao;
       private User user;

       public UserDao getUserDao() {
             return userDao;
       }
 
       public void setUserDao(UserDao userDao) {
             this.userDao = userDao;
       }

       public User getUser() {
             return user;
       }

       public void setUser(User user) {
             this.user = user;
       }

       public void save() {
             this.userDao.save(user);
       }
}

UserService 业务类,userDao 和 user 通过 spring 依赖注入,同时有一个 save 方法调用 dao 的 save 方法实现插入数据库操作。

<?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="userService" class="com.dpqi.spring.userservice.UserService">
       <property name="userDao" ref="userDaoImp2"/>
       <property name="user" ref="user"/>
      </bean>
      <!-- id是托管给Spring后该资源的名字,class是要托管的资源地址 -->
      <bean id="userDaoImp1" class="com.dpqi.spring.Dao.impl.UserDaoImp1">
      </bean>
      <bean id="userDaoImp2" class="com.dpqi.spring.Dao.impl.UserDaoImp2">
      </bean>
      <bean id="user" class="com.dpqi.spring.model.User">
       <property name="age" value="20"/>
       <property name="name" value="小白"/>
      </bean>
</beans>

Beans.xml spring 的配置文件。bean 中有两个属性,其中 class 是要托管的资源地址,id 是这个资源的名字,通常第一个字母要小写。Bean 中还有一个 property 标签,其中 name 属性是你托管资源中的成员变量,value 是普通类型的值,ref 是对象类型的值。在 spring 中对象也是用字符串表示的,所以 ref 中写的就是对象在 bean 中的 id 值。

我们这里就给 user 年龄赋值 20,姓名小白,然后给 userService 指定 user 和 userDao。

public class UserMain {
      public static void main(String[] args) {
             // TODO Auto-generated method stub
             ApplicationContext context =
                       new ClassPathXmlApplicationContext("Beans.xml");
 
       UserService userService=context.getBean("userService",UserService.class);
             userService.save();
      }
}

UserMain,在 java 项目中要想启动 spring 必须要创造一个容器,然后运行一个 bean 资源。context.getBean 中第一个参数填写 bean 中这个资源的 id,第二个参数填写这个资源本身的类名。然后运行,结果如下:

这样一个通过xml配置的 spring java 项目就搞定了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值