两种方式都需要一下jar包

一、基于XML的装配方式
1、com.itthima.assemble包下创建user.java实体类
package com.itthima.assemble;
import java.util.*;
public class User {
private String username;
private Integer password;
private List<String> list;
//1、构造方法注入属性(这个时候要写一个带有所有参数的构造方法函数)
public User(String username, Integer password, List<String> list) {
super();
this.username = username;
this.password = password;
this.list = list;
}
//2setter方法注入属性(要写一个空的构造方法,并且每个类属性的set方法要写)
public User() {
super();
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(Integer password) {
this.password = password;
}
public void setList(List<String> list) {
this.list = list;
}
@Override
public String toString() {
return "User [list=" + list + ", password=" + password + ", username="
+ username + ", getClass()=" + getClass() + ", hashCode()="
+ hashCode() + ", toString()=" + super.toString() + "]";
}
}
2、写相应的配置文件ApplicationContext.xml,在src的路径下进行。
<?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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user1" class="com.itthima.assemble.User">
<constructor-arg index="0" value="tom"></constructor-arg>
<constructor-arg index="1" value="123456"></constructor-arg>
<constructor-arg index="2">
<list>
<value>"jisd"</value>
<value>"sjdk"</value>
</list>
</constructor-arg>
</bean>
<bean id="user2" class="com.itthima.assemble.User">
<property name="username" value="张三李四"></property>
<property name="password" value="123456"></property>
<property name="list">
<list>
<value>"ksdkj"</value>
<value>"dkasj"</value>
</list>
</property>
</bean>
</beans>
3、com.itthima.assemble包下创建test1.java的测试类,看是否自动为对象属性赋值(在下面可以看出成功的基于XML的构造注入和设置注入成功的装配了User实例)
package com.itthima.assemble;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext app2=new ClassPathXmlApplicationContext("ApplicationContext.xml");
System.out.print(app2.getBean("user1"));
System.out.print("\n");
System.out.print(app2.getBean("user2"));
}
}
二、基于annotation(注解)的装配方式
1、com.itthima.annotation包下创建UserDao.java接口类和其UserDaoImpl.java实现类
package com.itthima.annotation;
public interface UserDao {
public void save();
}
package com.itthima.annotation;
import org.springframework.stereotype.Repository;
@Repository("userDao")
public class UserDaoImpl implements UserDao {
public void save() {
// TODO Auto-generated method stub
System.out.print("你好吗");
}
}
2、com.itthima.annotation下定义一个UserService.java业务逻辑接口类和其UserServiceImpl.java实现类
package com.itthima.annotation;
public interface UserService {
public void save();
}
package com.itthima.annotation;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource(name="userDao")
private UserDao userDao;
public void save() {
// TODO Auto-generated method stub
this.userDao.save();
System.out.print("userserviece.....save...");
}
}
3、 com.itthima.annotation下编写UserController.java的控制类
package com.itthima.annotation;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
@Controller("userController")
public class UserController {
@Resource(name="userService")
private UserService userService;
public void save(){
this.userService.save();
System.out.print("userController....save");
}
}
4、com.itthima.annotation下编写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: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/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com/itthima/annotation"/>
</beans>
5、编写测试类test.java,运行即可
package com.itthima.annotation;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String path="com/itthima/annotation/beans.xml";
ApplicationContext app2=new ClassPathXmlApplicationContext(path);
UserController userc=(UserController)app2.getBean("userController");
userc.save();
}
}
网友评论