【Spring】注解器
applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/context 8 http://www.springframework.org/schema/context/spring-context.xsd"> 9 <!-- 使用context命名空间,开启注解处理器 --> 10 <context:component-scan base-package="com.xiaobiti"/> 11 </beans>
实体:

User.java
1 package com.xiaobiti.entity; 2 3 import org.springframework.beans.factory.annotation.Value; 4 import org.springframework.context.annotation.Scope; 5 import org.springframework.stereotype.Component; 6 7 @Component("user") 8 @Scope("singleton")//bean作用域单例模式 9 public class User { 10 @Value("1") 11 private int id;//实例化给id赋值为1 12 @Value("张三") 13 private String name;//实例化给name赋值为张三 14 @Value("123") 15 private String password;//实例化给password赋值为123 16 17 public int getId() { 18 return id; 19 } 20 21 public void setId(int id) { 22 this.id = id; 23 } 24 25 public String getName() { 26 return name; 27 } 28 29 public void setName(String name) { 30 this.name = name; 31 } 32 33 public String getPassword() { 34 return password; 35 } 36 37 public void setPassword(String password) { 38 this.password = password; 39 } 40 41 @Override 42 public String toString() { 43 return "User{" + 44 "id=" + id + 45 ", name='" + name + '\'' + 46 ", password='" + password + '\'' + 47 '}'; 48 } 49 }
数据访问层:

UserDaoImpl.java
1 package com.xiaobiti.dao.impl; 2 3 import com.xiaobiti.dao.UserDao; 4 import com.xiaobiti.entity.User; 5 import org.springframework.stereotype.Repository; 6 7 import javax.annotation.Resource; 8 9 @Repository("userDao") 10 public class UserDaoImpl implements UserDao { 11 @Resource(name = "user") 12 private User user; 13 @Override 14 public boolean login(String username, String password) { 15 if (username.equals("admin") && password.equals("1234")){ 16 return true; 17 } 18 return false; 19 } 20 21 @Override 22 public void save() { 23 System.out.println("执行dao中的方法"); 24 System.out.println(user); 25 } 26 }
UserDao.java
1 package com.xiaobiti.dao; 2 3 public interface UserDao { 4 public boolean login(String username,String password); 5 public void save(); 6 }
业务逻辑层:

UserServiceImpl.java
1 package com.xiaobiti.service.impl; 2 3 import com.xiaobiti.dao.UserDao; 4 import com.xiaobiti.service.UserService; 5 import org.springframework.stereotype.Service; 6 7 import javax.annotation.Resource; 8 9 @Service("userService") 10 public class UserServiceImpl implements UserService { 11 @Resource(name = "userDao") 12 private UserDao userDao; 13 //setter方式注入 14 public void setUserDao(UserDao userDao) { 15 this.userDao = userDao; 16 } 17 @Override 18 public boolean login(String username, String password) { 19 return userDao.login(username,password); 20 } 21 @Override 22 public void save(){ 23 userDao.save(); 24 System.out.println("执行service中的方法"); 25 } 26 }
UserService.java
1 package com.xiaobiti.service; 2 3 public interface UserService { 4 public boolean login(String username,String password); 5 public void save(); 6 }
控制层:

UserController.java
1 package com.xiaobiti.controller; 2 3 import com.xiaobiti.service.UserService; 4 import org.springframework.stereotype.Controller; 5 6 import javax.annotation.Resource; 7 8 @Controller("userController") 9 public class UserController { 10 @Resource(name = "userService") 11 private UserService userService; 12 public void setUserService(UserService userService) {this.userService = userService;} 13 public void save(){ 14 userService.save(); 15 System.out.println("执行了controller中的方法"); 16 } 17 }
运行测试代码:
1 public static void main(String[] args) { 2 //加载核心配置文件 3 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 4 UserController userController = (UserController) applicationContext.getBean("userController"); 5 userController.save(); 6 }
运行结果:
@Component 用于指定普通bean,可以用于任何层次
@Repository 用于指定数据访问组件bean,用于数据访问层,功能上等同@Component
@Service 用于指定业务逻辑组件bean,用于业务逻辑层,功能上等同@Component
@Controller 用于指定类控制器组件bean,用于控制层,功能上等同@Component
@Resource 用于实现依赖注入

浙公网安备 33010602011771号