Spring 一二事(8) - annotation 形式的 MVC

简介: 1 5 IStuDAO.java 1 package com.lee.spring012.scan.mvc.annotation; 2 3 public interface IStuDAO { 4 public void saveStu(); 5 } IStuService.
1 <!-- 
2            component:把一个类放入到spring容器中,该类就是一个component
3            在base-package指定的包及子包下扫描所有的类
4     -->
5     <context:component-scan base-package="com.lee.spring012.scan.mvc.annotation"></context:component-scan>

IStuDAO.java

1 package com.lee.spring012.scan.mvc.annotation;
2 
3 public interface IStuDAO {
4     public void saveStu();
5 }

IStuService.java

1 package com.lee.spring012.scan.mvc.annotation;
2 
3 public interface IStuService {
4     public void saveStu();
5 }

PersonAction.java

 1 package com.lee.spring012.scan.mvc.annotation;
 2 
 3 import javax.annotation.Resource;
 4 
 5 import org.springframework.context.annotation.Scope;
 6 import org.springframework.stereotype.Controller;
 7 
 8 @Controller
 9 @Scope("prototype")        // action为多例
10 public class PersonAction {
11 
12     @Resource
13     public IStuService stuServiceImpl;
14 
15     public void displaySave() {
16         System.out.println("mvc action: saving stu...");
17         stuServiceImpl.saveStu();
18     }
19 
20 }

StuDAOImpl.java

 1 package com.lee.spring012.scan.mvc.annotation;
 2 
 3 import org.springframework.stereotype.Repository;
 4 
 5 @Repository
 6 public class StuDAOImpl implements IStuDAO {
 7 
 8     @Override
 9     public void saveStu() {
10         System.out.println("mvc dao: saving stu...");
11     }
12 
13 }

StuServiceImpl.java

 1 package com.lee.spring012.scan.mvc.annotation;
 2 
 3 import javax.annotation.Resource;
 4 
 5 import org.springframework.stereotype.Service;
 6 
 7 @Service
 8 public class StuServiceImpl implements IStuService {
 9 
10     @Resource
11     public IStuDAO stuDAOImpl;
12     
13     @Override
14     public void saveStu() {
15         System.out.println("mvc service: saving stu...");
16         stuDAOImpl.saveStu();
17     }
18 
19 }

测试

 1 package com.lee.spring012.scan.mvc.annotation;
 2 
 3 import org.junit.Test;
 4 import org.springframework.context.ApplicationContext;
 5 import org.springframework.context.support.ClassPathXmlApplicationContext;
 6 
 7 public class PersonTest {
 8 
 9     @Test
10     public void testPersonAction() {
11         ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-scan-mvc.xml");
12         PersonAction person = (PersonAction)context.getBean("personAction");
13         person.displaySave();
14     }
15 
16 }

github地址:https://github.com/leechenxiang/maven-spring001-helloworld

相关文章
|
5天前
|
设计模式 前端开发 Java
初识Spring MVC
初识Spring MVC
10 0
|
5天前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
12 1
|
8天前
|
监控 前端开发 Java
SpringBoot与SpringMVC有哪些区别?
SpringBoot和SpringMVC是Java开发中常用的两个框架,它们都是由Spring框架所提供的,但在功能和使用方式上有着一些区别。
22 2
|
1月前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
23 3
|
1月前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
14 1
|
1月前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
33 3
|
1月前
|
前端开发 Java 容器
家族传承:Spring MVC中父子容器的搭建与管理指南
家族传承:Spring MVC中父子容器的搭建与管理指南
26 3
|
1月前
|
前端开发 Java API
头头是道:揭示Spring MVC如何获取和处理请求头数据
头头是道:揭示Spring MVC如何获取和处理请求头数据
26 1
|
XML 监控 Java
Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知Advice注解(已附源码)
在微服务流行的当下,在使用SpringCloud/Springboot框架开发中,AOP使用的非常广泛,尤其是@Aspect注解方式当属最流行的,不止功能强大,性能也很优秀,还很舒心!所以本系列就结合案例详细介绍@Aspect方式的切面的各种用法,力求覆盖日常开发中的各种场景。本文带来的案例是:打印Log,主要介绍@Pointcut切点表达式的@annotation方式,以及 五种通知Advice注解:@Before、@After、@AfterRunning、@AfterThrowing、@Around。
|
XML Java 数据格式
初识 Spring(05)---(Annotation注解)
Annotation 注解 注入注解:@Autowired 注入 1.加在set方法上, 默认按类型by type,如果在 spring 容器中能够找到多个相同的类型,就从这多个类型找查找有没有一个key的值跟我们的 ...
1233 0