溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring框架使用P命名空間進行注入的方法

發(fā)布時間:2021-02-02 10:14:06 來源:億速云 閱讀:157 作者:小新 欄目:編程語言

小編給大家分享一下Spring框架使用P命名空間進行注入的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

這里需要注意的一點是,P命名空間進行注入,是建立在設(shè)值注入的基礎(chǔ)上的,也就是說,一定要有setter方法才行,同時還要引入P命名空間的頭信息(這點千萬別忘記了)

典型的三層架構(gòu):

package dao;

import entity.User;

/**
 * 增加DAO接口,定義了所需的持久化方法
 */
public interface UserDao {
  public void save(User user);
}
package dao.impl;

import dao.UserDao;
import entity.User;

/**
 * 用戶DAO類,實現(xiàn)IDao接口,負責User類的持久化操作
 */
public class UserDaoImpl implements UserDao {

  public void save(User user) {
    // 這里并未實現(xiàn)完整的數(shù)據(jù)庫操作,僅為說明問題
    System.out.println("保存用戶信息到數(shù)據(jù)庫");
  }
}
package service;

import entity.User;

/**
 * 用戶業(yè)務接口,定義了所需的業(yè)務方法
 */
public interface UserService {
  public void addNewUser(User user);
}
package service.impl;

import service.UserService;
import dao.UserDao;
import entity.User;

/**
 * 用戶業(yè)務類,實現(xiàn)對User功能的業(yè)務管理
 */
public class UserServiceImpl implements UserService {

  // 聲明接口類型的引用,和具體實現(xiàn)類解耦合
  private UserDao dao;

  

  // 生成無參構(gòu)造方法
  public UserServiceImpl() {

  }

  // 帶參數(shù)構(gòu)造方法  為dao進行賦值
  public UserServiceImpl(UserDao dao) {
    this.dao = dao;
  }


  public UserDao getDao() {
    return dao;
  }

  // dao 屬性的setter訪問器,會被Spring調(diào)用,實現(xiàn)設(shè)值注入
  public void setDao(UserDao dao) {
    this.dao = dao;
  }

  public void addNewUser(User user) {
    // 調(diào)用用戶DAO的方法保存用戶信息
    dao.save(user);
    System.out.println("注入進去的user對象的信息是:"+user.toString());
  }
}

實體類:(這里也進行了相應的改動)

package entity;

/**
 * 用戶實體類
 */
public class User implements java.io.Serializable {
  private Integer id; // 用戶ID
  private String username; // 用戶名
  private String password; // 密碼
  private String email; // 電子郵件
  private int age;//年齡
  

  @Override
  public String toString() {
    return "User [id=" + id + ", username=" + username + ", password="
        + password + ", email=" + email + ", age=" + age
        + ", getAge()=" + getAge() + ", getId()=" + getId()
        + ", getUsername()=" + getUsername() + ", getPassword()="
        + getPassword() + ", getEmail()=" + getEmail()
        + ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
        + ", toString()=" + super.toString() + "]";
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  // getter & setter
  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

}

編寫測試方法:

package test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import service.UserService;
import service.impl.UserServiceImpl;

import entity.User;


public class AopTest {

  @Test
  public void aopTest() {
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    UserService service = (UserService) ctx.getBean("userService");
    User user = (User) ctx.getBean("user");
    service.addNewUser(user);
  }

}

運行結(jié)果:

保存用戶信息到數(shù)據(jù)庫

注入進去的user對象的信息是:User [id=null, username=強強, password=22222, email=1111@qq.com, age=15, getAge()=15, getId()=null, getUsername()=強強, getPassword()=22222, getEmail()=1111@qq.com, getClass()=class entity.User, hashCode()=1032986144, toString()=entity.User@3d921e20]

看完了這篇文章,相信你對“Spring框架使用P命名空間進行注入的方法”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI