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
455

被折叠的 条评论
为什么被折叠?



