1.代码区
// 测试import 导入entity.xml注入name值
packagecn.sxt.bean;public classHello {publicHello() {
System.out.println("hello 被创建");
}privateString name;private booleansex;public booleanisSex() {returnsex;
}public void setSex(booleansex) {this.sex =sex;
}public voidsetName(String name) {this.name =name;
}public voidshow(){
System.out.println("hello,"+name);
}
}
Hello
packagecn.sxt.test;importorg.springframework.beans.factory.BeanFactory;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcn.sxt.bean.Hello;public classTest {public static voidmain(String[] args) {//解析beans.xml文件 生成管理相应的bean对象
BeanFactory context = new ClassPathXmlApplicationContext("beans.xml");
Hello hello= (Hello) context.getBean("h1");//Hello hello = (Hello)context.getBean("h3");//Hello hello= context.getBean(Hello.class);
hello.show();
}
}/*** hello 被创建
* hello,张三*/
Test
entity.xml
beans.xml
// 测试 service层调用dao层的代码,采用bean注入的方式调用
packagecn.sxt.dao;public interfaceUserDao {public voidgetUser();
}
UserDao
packagecn.sxt.dao.impl;importcn.sxt.dao.UserDao;public class UserDaoMySqlImpl implementsUserDao{
@Overridepublic voidgetUser() {
System.out.println("mysql获取用户数据");
}
}
UserDaoMySqlImpl
packagecn.sxt.dao.impl;importcn.sxt.dao.UserDao;public class UserDaoOracleImpl implementsUserDao{
@Overridepublic voidgetUser() {
System.out.println("oracle获取用户数据");
}
}
UserDaoOracleImpl
packagecn.sxt.service;public interfaceUserService {public voidgetUser();
}
UserService
packagecn.sxt.service.impl;importcn.sxt.dao.UserDao;importcn.sxt.service.UserService;public class UserServiceImpl implementsUserService{private UserDao userDao=null;public voidsetUserDao(UserDao userDao) {this.userDao =userDao;
}
@Overridepublic voidgetUser() {
userDao.getUser();
}
}
UserServiceImpl
packagecn.sxt.test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcn.sxt.service.UserService;public classTest {public static voidmain(String[] args) {
ApplicationContext ac= new ClassPathXmlApplicationContext("beans.xml");
UserService us= (UserService)ac.getBean("service");
us.getUser();
}
}//oracle获取用户数据
Test
beans.xml
\
//测试通过构造注入属性和 userdynamicfactory依赖user 对象, 工厂设计模式
packagecn.sxt.factory;importjava.util.List;importjava.util.Map;importjava.util.Set;importcn.sxt.vo.User;public classUserDynamicFactory {publicUser newInstance(String name){return newUser(name);
}private intage;privateList hobby;privateMap friends;privateSet set;private booleanifMarried;public UserDynamicFactory(intage, List hobby, Map friends, Set set,booleanifMarried) {super();this.age =age;this.hobby =hobby;this.friends =friends;this.set =set;this.ifMarried =ifMarried;
}
@OverridepublicString toString() {return "UserDynamicFactory [age=" + age + ", hobby=" +hobby+ ", friends=" + friends + ", set=" + set + ", ifMarried="
+ ifMarried + "]";
}
}
UserDynamicFactory
packagecn.sxt.vo;public classUser {publicUser(String name) {super();this.name =name;
}privateString name;public voidshow(){
System.out.println("name="+name);
}
}
User
packagecn.sxt.test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcn.sxt.factory.UserDynamicFactory;importcn.sxt.vo.User;public classTest {public static voidmain(String[] args) {
ApplicationContext ac= new ClassPathXmlApplicationContext("beans.xml");//通过构造可以注入
UserDynamicFactory dynamicFactory = (UserDynamicFactory)ac.getBean("userFacotry");
System.out.println(dynamicFactory);// User user = (User)ac.getBean("user1");
user.show();
}
}/*** UserDynamicFactory [age=25, hobby=[a, b, c], friends={liuhua=man, xujinglei=female}, set=[d, e, f], ifMarried=true]
*name=王五
**/
Test
//依赖的关系是 userdynamicfactory 依赖user 对象
//代表构造函数的顺序是0开始
a
b
c
d
e
f
beans.xml
// 通过property 方式注入值
packagecn.sxt.test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcn.sxt.vo.Student;importcn.sxt.vo.User;public classTest {public static voidmain(String[] args) {
ApplicationContext ac= new ClassPathXmlApplicationContext("beans.xml");//得到student对象值
Student student=(Student) ac.getBean("student");
student.show();
System.out.println("+++++++++++++++++++++++++++++++++++++");
User user1= (User)ac.getBean("user");
System.out.println(user1);
System.out.println("+++++++++++++++++++++++++++++++++++++");
User user= (User)ac.getBean("u1");
System.out.println(user);
}
}/*name=张三丰 addr=北京西三旗
books=
傲慢与偏见 仲夏夜之梦 雾都孤儿
hobbies=[羽毛球, 乒乓球, 玻璃球, 台球球]
cards={中国银行=149127348932174, 建设银行=622710023478234234}
games=[lol, dota, cs1.6, dnf]
wife=null
info={学号=2015052601, name=小明, sex=男}
+++++++++++++++++++++++++++++++++++++
User [name=风清扬, age=230]
+++++++++++++++++++++++++++++++++++++
User [name=nico, age=16]*/
Test
packagecn.sxt.vo;public classAddress {privateString address;publicString getAddress() {returnaddress;
}public voidsetAddress(String address) {this.address =address;
}
}
Address
packagecn.sxt.vo;importjava.util.List;importjava.util.Map;importjava.util.Properties;importjava.util.Set;public classStudent {privateString name;privateAddress addr;privateString[] books;private Listhobbies;private Mapcards;private Setgames;privateString wife;privateProperties info;public voidsetName(String name) {this.name =name;
}public voidsetAddr(Address addr) {this.addr =addr;
}public voidsetBooks(String[] books) {this.books =books;
}public void setHobbies(Listhobbies) {this.hobbies =hobbies;
}public void setCards(Mapcard) {this.cards =card;
}public void setGames(Setgames) {this.games =games;
}public voidsetWife(String wife) {this.wife =wife;
}public voidsetInfo(Properties info) {this.info =info;
}public voidshow(){
System.out.println("name="+name+" addr="+addr.getAddress());
System.out.println("books=");for(int i=0;i
System.out.print(books[i]+" ");
}
System.out.println();
System.out.println("hobbies="+hobbies);
System.out.println("cards="+cards);
System.out.println("games="+games);
System.out.println("wife="+wife);
System.out.println("info="+info);
}
}
Student
packagecn.sxt.vo;public classUser {privateString name;private intage;publicUser() {//TODO Auto-generated constructor stub
}public User(String name, intage) {super();this.name =name;this.age =age;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}
@OverridepublicString toString() {return "User [name=" + name + ", age=" + age + "]";
}
}
User
傲慢与偏见
仲夏夜之梦
雾都孤儿
羽毛球
乒乓球
玻璃球
台球球
建设银行
622710023478234234
lol
dota
cs1.6
dnf
2015052601
男
小明
beans.xml