本文共 4320 字,大约阅读时间需要 14 分钟。
格式:
实体类:
public class UserServiceImpl implements UserSevice{ @Override public void addUser() { System.out.println("Adding!!"); }}
示例:
// xml// classpublic class UserServiceImpl implements UserSevice{ @Override public void addUser() { System.out.println("Adding!!"); }}// testApplicationContext applicationContext = new ClassPathXmlApplicationContext("com/zamao/inter/applicationContext.xml");UserServiceImpl userService = applicationContext.getBean("userServiceImpl",UserServiceImpl.class);userService.addUser();
格式:
实体类:
public class UserServiceImpl implements StaticuserSevice { @Override public void addUser() { System.out.println("Adding!! static Factory"); }}
工厂类:
public class Factory { //静态方法生产bean public static StaticuserSevice createUserService () { return new UserServiceImpl(); }}
xml:
测试:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("com/zamao/staticfactory/applicationContext.xml");StaticuserSevice userSevice =applicationContext.getBean("userServiceImpl",StaticuserSevice.class);userSevice.addUser();
格式:
实体类:
public class SimpleuserServiceImpl implements SimpleuserSevice{ @Override public void addUser() { System.out.println("Adding!! simple Factory"); }}
工厂类:
public class Factory { // 普通方法生产bean public SimpleuserServiceImpl createUserService () { return new SimpleuserServiceImpl(); }}
xml:
测试:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("com/zamao/simplefactory/applicationContext.xml");SimpleuserSevice simpleuserSevice =applicationContext.getBean("simpleUserServiceImpl", SimpleuserSevice.class);simpleuserSevice.addUser();
实体类:
public class User { String name; Integer age; Address address; public User(String name, Integer age, Address address) { this.name = name; this.age = age; this.address = address; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; }}
public class Address { String name; public Address(String name) { this.name = name; } @Override public String toString() { return "Address{" + "name='" + name + '\'' + '}'; }}
xml:
测试:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("com/zamao/constructor/applicationContext.xml");User user = applicationContext.getBean("user",User.class);System.out.println(user.toString());
格式:
实体类与上面相同,只不过将构造方法换成了setter方法
xml:格式:
p 命名空间: 简化property注意声明命名空间
xml:
// 声明p命名空间xmlns:p="http://www.springframework.org/schema/p"
注解 : 就是一个类,使用@注解名称
开发中,使用注解取代xml配置文件
@Component 取代< bean class="">
@Component(“id”) 取代< bean id="" class="">
web 开发,提供3个@Component 注解衍生注解@Repository: dao 层@ Service : service 层@ Controller : web 层
注入的方式如下:
普通值 : @Value("");引用值 :
方式1:按照[类型]注入:
方式2: 按照[名称]注入
@Autowired
@Qualifier(“名称”)
@Resource(“名称”)
注意:
通过注解装配bean需要在xml文件中配置需要扫描的包。 在xml中添加如下代码:这里通过基于注解装配bean实现三层架构来进行举例
Dao 层:
@Repository("userDaoImpl")public class UserDaoImpl implements UserDao{ @Override public void saveUser() { System.out.println("Save"); }}
Service层:
@Servicepublic class UserServiceImpl implements UserSevice { UserDao userDao; @Autowired @Qualifier("userDaoImpl") public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void addUser() { userDao.saveUser(); }}
Controller层:
@Controller("userControllerImpl")public class UserControllerImpl implements UserController { @Autowired UserSevice userSevice; @Value("jacw") String name; @Override public void insertUser() { userSevice.addUser(); } public String toString() { return name; }}
Service层通过按照[名称]的方式注入Dao,Controller通过按照[类型]的方式注入Service。
转载地址:http://vdaen.baihongyu.com/