Spring之Bean的装配,linux学习心得体会

本文详细介绍了Spring框架中如何使用静态工厂方法创建DAO对象,并展示了在 UserServiceImpl 类中如何注入这些DAO。此外,还探讨了通过XML配置文件进行属性装配,包括setter方法、构造器装配以及使用`p`命名空间简化setter方法。同时,文章也涵盖了集合如List、Set、Array的装配方式。
摘要由CSDN通过智能技术生成

}

}

<! --装配实例工厂–>

静态方法:无须创建工厂类实例的情况下就可以调用工厂类方法

//静态工厂

public class DAOFactory {

public static TopicDAO getTopicDAO(){

return new TopicDAOImpl();

}

public static UserDAO getUserDAO(){

return new UserDAOImpl();

}

}

public class UserServiceImpl implements UserService{

private UserDAO userDAO=DAOFactory.getUserDAO();

private TopicDAO topicDAO=DAOFactory.getTopicDAO();

public void addUser() {

userDAO.addUser();

}

public void delUser() {

userDAO.delUser();

}

//setter 初始化 UserDAO

public void setUserDAO(UserDAO userDAO) {

System.out.println(“通过setter”);

this.userDAO = userDAO;

}

factory-bean:用于实例化工厂类;

factory-method:用于调用工厂类方法。

Set方法装配


package com.xbj.po;

public class Address {

private String city;

private String area;

private Integer code;

//getter setter

}

package com.xbj.po;

public class User {

private String name;

private Integer age;

private Address address;

//getter setter

}

<?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 https://www.springframework.org/schema/beans/spring-beans.xsd">

public class Test01 {

@Test

public void t1(){

ApplicationContext context=new ClassPathXmlApplicationContext(“spring/applicationContext.xml”);

User user=context.getBean(“user”, User.class);

System.out.println(user.getName());

}

@Test

public void t2(){

ApplicationContext context=new ClassPathXmlApplicationContext(“spring/applicationContext.xml”);

User user=context.getBean(“user”, User.class);

System.out.println(user.getAddress().getCity());

}

@Test

public void t3(){

}

}

构造装配


默认情况下(没有指定特定的构造装配Bean) Spring容器 通过 空构造 创造对象,如果没有空构造,会报错:找不到默认的构造

public class Address {

private String city;

private String area;

private Integer code;

public Address() {

}

public Address(String area, Integer code) {

this.area = area;

this.code = code;

}

public Address(String city, String area) {

this.city = city;

this.area = area;

}

//getter setter

//applicationContext.xml

//Junit 注解 的方法必须是public的

private ApplicationContext context;

@Before

public void init(){

context=new ClassPathXmlApplicationContext(“spring/applicationContext-2.xml”);

}

@Test

public void t1(){

Address address=context.getBean(“address”, Address.class);

System.out.println(address);

}

P命名空间


简化setter方法的装配

public class Address {

private String city;

private String area;

private Integer code;

//getter setter

约束文件添加 xmlns:p=“http://www.springframework.org/schema/p”

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:p=“http://www.springframework.org/schema/p”

xsi:schemaLocation="

http://www.springframework.org/schema/beans

https://www.springframework.org/schema/beans/spring-beans.xsd">

<bean class=“com.mchange.v2.c3p0.ComboPooledDataSource” id=“comboPooledDataSource” p:jdbcUrl=""

p:driverClass="" p:user="" p:password="" />

3.6 集合的装配

装配 List Set Array

public class User

{

private List hobbies;

private String[] books;

private Set nums;

//getter setter

sanguo

shuihu

11

22

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值