Spring 注解开发

注解开发 Spring高版本需要有aop的包。
配置文件


POJO
@Component//作为组件注入bean 类似于 public class User { //值的注入类似于我们的【Spring 注解开发】 @Value("张三") private String name; public String getName() { return name; } }

Dao
@Repository//注入默认为 Dao层对应三层架构的数据持久层 public class UserDao { private User user; @Autowired public UserDao(User user){ this.user = user; } public void getName(){ System.out.println(user.getName()); } }

Service
@Service//注入默认为 Service层对应三层架构的业务层 public class UserService { public UserDao userDao; @Autowired public UserService(UserDao userDao){ this.userDao = userDao; } public void getName(){ userDao.getName(); } }

Controller
@Controller//注入默认为 Controller层对应三层架构的控制层层 public class UserController { private UserService userService; @Autowired public UserController(UserService userService){ this.userService=userService; } public void getName(){ userService.getName(); } }

启动类
public class AnnotationTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml"); UserController userDao = context.getBean("userController", UserController.class); userDao.getName(); } }

纯注解开发
配置文件
/** * 标明该类是Spring的配置类 * 类似于我们的xml文件 * 这个类也会交给Spring管理,@Configuration包含@Component注解 */ @Configuration /** * 包扫描类似于 */ @ComponentScan("com.spring") /** * 导入另一个配置文件 * 类似于 */ @Import(SpringConfig2.class) public class SpringConfig { /** * 类似于 * 注入了一个对象 * 方法名是id属性 * 方法返回值的类型是class属性 */ @Bean public User user(){ return new User(); } }

    推荐阅读