SpringIOC

IOC 控制反转:

对象创建工作交给别人来完成

springIOC 基于XML方式解决程序耦合

加入所需jar包

setter注入参数 及 构造注入参数

package com.twy.service;

public class DbUtil {
	String driver;
	String url;
	String uname;
	String upwd;

	public DbUtil(String driver, String url, String uname, String upwd) {
		super();
		this.driver = driver;
		this.url = url;
		this.uname = uname;
		this.upwd = upwd;
	}

	public DbUtil() {
	}

	public String getDriver() {
		return driver;
	}

	public void setDriver(String driver) {
		this.driver = driver;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getUname() {
		return uname;
	}

	public void setUname(String uname) {
		this.uname = uname;
	}

	public String getUpwd() {
		return upwd;
	}

	public void setUpwd(String upwd) {
		this.upwd = upwd;
	}

	@Override
	public String toString() {
		return "DbUtil [driver=" + driver + ", url=" + url + ", uname=" + uname + ", upwd=" + upwd + "]";
	}

}

beans.xml

<?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"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    					http://www.springframework.org/schema/beans/spring-beans.xsd
    					http://www.springframework.org/schema/mvc
    					http://www.springframework.org/schema/mvc/spring-mvc.xsd
    					http://www.springframework.org/schema/aop
    					http://www.springframework.org/schema/mvc/spring-aop.xsd
    					http://www.springframework.org/schema/tx
    					http://www.springframework.org/schema/mvc/spring-tx.xsd
    					http://www.springframework.org/schema/context
    					http://www.springframework.org/schema/context/spring-context.xsd">
	<context:annotation-config></context:annotation-config>
	<!-- scope="prototype"  -->
	<bean id="userDao" class="com.twy.dao.UserDaoImpl" init-method="init" destroy-method="destory"></bean>
	
	<bean id="userService" class="com.twy.service.UserServiceImpl" lazy-init="true">
		<property name="dao" ref="userDao"></property>
	</bean>
	
	<!-- setter注入 -->
	<bean id="db" class="com.twy.service.DbUtil">
		<property name="driver" value="com.mysql.jdbc.Driver"></property>
		<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>
		<property name="uname" value="root"></property>
		<property name="upwd" value=""></property>
	</bean>
	
	<!-- 构造器注入 -->
	<bean id="db2" class="com.twy.service.DbUtil">
		<constructor-arg index="0" value="com.mysql.jdbc.Driver"></constructor-arg>
		<constructor-arg index="1" value="jdbc:mysql://127.0.0.1:3306/test"></constructor-arg>
		<constructor-arg index="2" value="root"></constructor-arg>
		<constructor-arg index="3" value=""></constructor-arg>
	</bean>	
	
	
</beans>
package com.twy.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.twy.service.DbUtil;

public class UserServiceTest {

	@Test
	public void testDb() {
		String[] beans = new String[] { "beans.xml" };
		ApplicationContext ctx = new ClassPathXmlApplicationContext(beans);
		// DbUtil db = (DbUtil) ctx.getBean("db");
		DbUtil db = (DbUtil) ctx.getBean("db2");
		System.out.println(db);
		//执行结果
		//DbUtil [driver=com.mysql.jdbc.Driver, url=jdbc:mysql://127.0.0.1:3306/test, uname=root, upwd=]
	}

}

spring 基于xml 初始化复杂的javabean 

package com.twy.service;

import java.util.List;
import java.util.Map;

public class Student {
	String name;
	int no;
	List<String> loves;
	Map<String, String> map;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getNo() {
		return no;
	}

	public void setNo(int no) {
		this.no = no;
	}

	public List<String> getLoves() {
		return loves;
	}

	public void setLoves(List<String> loves) {
		this.loves = loves;
	}

	public Map<String, String> getMap() {
		return map;
	}

	public void setMap(Map<String, String> map) {
		this.map = map;
	}

	@Override
	public String toString() {
		return "Student [name=" + name + ", no=" + no + ", loves=" + loves + ", map=" + map + "]";
	}

}

beans.xml增加

<bean id="stu" class="com.twy.service.Student">
	
		<property name="no" value="1"/>
		<property name="name" value="曹老大"></property>
		<property name="loves">
			<list>
				<value>唱歌</value>
				<value>跳舞</value>
				<value>打游戏</value>
				<value>找女朋友</value>
			</list>
		</property>

		<property name="map">
			<map>
				<entry key="01" value="赵雅芝"></entry>
				<entry key="02" value="赵丽影"></entry>
			</map>
		</property>
		
	</bean>
@Test
	public void testStudent() {
		String[] beans = new String[] { "beans.xml" };
		ApplicationContext ctx = new ClassPathXmlApplicationContext(beans);
		Student student = (Student) ctx.getBean("stu");
		System.out.println(student);
		// 执行结果
		// Student [name=曹老大, no=1, loves=[唱歌, 跳舞, 打游戏, 找女朋友], map={01=赵雅芝, 02=赵丽影}]
	}

使用注解的方式来创建javabean

@Controller    标注为控制器
@Service    标注为服务层
@Reponsitory    标注为数据访问对象
@Component    不太好分类的对象

src/beans.xml

<?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"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    					http://www.springframework.org/schema/beans/spring-beans.xsd
    					http://www.springframework.org/schema/mvc
    					http://www.springframework.org/schema/mvc/spring-mvc.xsd
    					http://www.springframework.org/schema/aop
    					http://www.springframework.org/schema/mvc/spring-aop.xsd
    					http://www.springframework.org/schema/tx
    					http://www.springframework.org/schema/mvc/spring-tx.xsd
    					http://www.springframework.org/schema/context
    					http://www.springframework.org/schema/context/spring-context.xsd">

	<context:annotation-config></context:annotation-config>
	<context:component-scan base-package="com.twy"></context:component-scan>

</beans>

执行打印结果

构造UserDaoImpl
add user in controller....你好
add user in service...
add user in dao
 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值