Spring 一二事(8) - annotation 形式的 MVC
2024-08-25 22:20:09
<!--
component:把一个类放入到spring容器中,该类就是一个component
在base-package指定的包及子包下扫描所有的类
-->
<context:component-scan base-package="com.lee.spring012.scan.mvc.annotation"></context:component-scan>
IStuDAO.java
package com.lee.spring012.scan.mvc.annotation; public interface IStuDAO {
public void saveStu();
}
IStuService.java
package com.lee.spring012.scan.mvc.annotation; public interface IStuService {
public void saveStu();
}
PersonAction.java
package com.lee.spring012.scan.mvc.annotation; import javax.annotation.Resource; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller; @Controller
@Scope("prototype") // action为多例
public class PersonAction { @Resource
public IStuService stuServiceImpl; public void displaySave() {
System.out.println("mvc action: saving stu...");
stuServiceImpl.saveStu();
} }
StuDAOImpl.java
package com.lee.spring012.scan.mvc.annotation; import org.springframework.stereotype.Repository; @Repository
public class StuDAOImpl implements IStuDAO { @Override
public void saveStu() {
System.out.println("mvc dao: saving stu...");
} }
StuServiceImpl.java
package com.lee.spring012.scan.mvc.annotation; import javax.annotation.Resource; import org.springframework.stereotype.Service; @Service
public class StuServiceImpl implements IStuService { @Resource
public IStuDAO stuDAOImpl; @Override
public void saveStu() {
System.out.println("mvc service: saving stu...");
stuDAOImpl.saveStu();
} }
测试
package com.lee.spring012.scan.mvc.annotation; import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class PersonTest { @Test
public void testPersonAction() {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-scan-mvc.xml");
PersonAction person = (PersonAction)context.getBean("personAction");
person.displaySave();
} }
github地址:https://github.com/leechenxiang/maven-spring001-helloworld
最新文章
- 妙味课堂——HTML+CSS基础笔记
- Delphi Berlin 10.1 for iOS 成生 info.plist 顺序改变了
- win7 64位DCOM配置(关于导出excel 配置计算机组件服务)(转)
- windows系统服务编程代码示例分享
- DestroyWindow函数注意事项
- 使用System.Timers.Timer类实现程序定时执行
- 一张图告诉你为什么 Gmail 是最好的邮箱,以及大量私货
- iptables配置——NAT地址转换
- 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明
- jaspersoft 5.6.0 相关问题
- memcached的安装以及php两个扩展软件安装(memcache、memcached)
- 时间序列预测之--ARIMA模型
- 通过案例学习 Secret - 每天5分钟玩转 Docker 容器技术(110)
- [js高手之路]面向对象版本匀速运动框架
- angular4.0运行在微信端的坑坑洼洼
- Sql server 用T-sql读取本地数据文件dbf的数据文件
- Vue + webpack 项目实践
- 剑指offer例题分享--6
- Vue(基础七)_webpack(CommonsChunkPlug的使用)
- android studio Error:Execution failed for task &#39;:app:processDebugResources&#39;. >; com.android.ide.common.process.ProcessException: Failed to execute aapt