Spring入门注解版
参照博文Spring入门一,以理解注解的含义。
项目结构:

实现类:SpringHelloWorld
package com.yibai.spring.helloworld.impl; import org.springframework.stereotype.Component; import com.yibai.spring.helloworld.HelloWorld; @Component
public class SpringHelloWorld implements HelloWorld{ @Override
public void sayHello() {
System.out.println("spring hello world"); } }
实现类:strutsHelloWorld
package com.yibai.spring.helloworld.impl; import org.springframework.stereotype.Component; import com.yibai.spring.helloworld.HelloWorld; @Component
public class StrutsHelloWorld implements HelloWorld{ @Override
public void sayHello() {
System.out.println("struts hello world");
} }
service类:
package com.yibai.spring.helloworld; import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yibai.spring.helloworld.impl.SpringHelloWorld;
import com.yibai.spring.helloworld.impl.StrutsHelloWorld; @Service
public class HelloWorldService { @Resource
private SpringHelloWorld helloWorld; @Resource
private StrutsHelloWorld helloWorld2; public HelloWorldService(){ } public void show(){
helloWorld.sayHello();
helloWorld2.sayHello();
} }
主方法类:
package com.yibai.spring; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yibai.spring.helloworld.HelloWorldService; public class HelloProgram { public static void main(String[] args) { // 创建上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWorldService service = (HelloWorldService) context.getBean("helloWorldService"); service.show(); }
}
配置类:web.xml不变,spring配置applocationContext.xml改为支持注解
<?xml version="1.0" encoding="UTF-8"?>
<!-- <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:component-scan base-package="com.yibai.spring"/> </beans>
service中,通过@resource注解需要注入的bean,实现类通过@Component完成spring配置,service类通过@Service完成spring配置。
附包名:多了一个aop包

补充:
有四种类型的组件自动扫描注释类型
@Component 指示自动扫描组件,这四种注解最终都被注解为Component,故可以用这个注解代替所有的组件扫描注解
@Repository 表示在持久层DAO组件
@Service 表示在业务层服务组件
@Controller 表示在表示层控制器组件
过滤器组件扫描spring配置:自动扫描类文件名中包含 Service和 Impl 的类
<context:component-scan base-package="com.yibai.spring">
<context:include-filter type="regex" expression=".*Service.*"/>
<context:include-filter type="regex" expression=".*Impl.*"/>
</context:component-scan>
Spring入门注解版的更多相关文章
- spring mvc注解版01
spring mvc是基于servlet实现的在spring mvc xml版中已经说过了,注解版相较于xml版更加简洁灵活. web项目的jar包: commons-logging-1.1.3.ja ...
- 简单实现Spring框架--注解版
自己写的Spring框架——简单实现IoC容器功能 前几天在网上看了篇帖子,是用xml的方式实现spring的ioc容器,觉得挺有意思的,这边自己试着用注解的形式造了一套轮子. 工程结构 codein ...
- Spring 定时任务 注解版
Task类: ManageSql.Java对应代码: package com.axb.cheney.task; import java.sql.ResultSet; import java.sql.S ...
- spring入门-注解的使用
说明: 使用注解和使用配置文件实现的功能是一样的,都是为了解耦,但是配置文件语法属于非编程语言法语,无法调试,难以定位bug,使用注解更易定位问题. 配置步骤 编译器必须先安装了STS插件 第一步 导 ...
- 菜鸟学习Spring——SpringMVC注解版前台向后台传值的两种方式
一.概述. 在很多企业的开法中常常用到SpringMVC+Spring+Hibernate(mybatis)这样的架构,SpringMVC相当于Struts是页面到Contorller直接的交互的框架 ...
- 菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串
一.概述 不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式的JSON串的. 二.代码 ...
- 菜鸟学习Spring——SpringMVC注解版将URL中的参数转成实体
一.概述 将URL中参数转成实体在我们项目中用的很多比如界面提交表单请求后台的Contorller的时候通过URL传递了一串参数到后台,后台通过Spring让界面的字段与实体的字段映射来实现给后台的实 ...
- 菜鸟学习Spring——SpringMVC注解版在服务器端获取Json字符串并解析
一.概述. SpringMVC在服务端把客户端传过来的JSON字符串,并把JSON字符串转成 JSON对象并取得其中的属性值,这个在项目中经常用到. 二.代码演示. 需要添加的jar包. 2.1 we ...
- 菜鸟学习Spring——SpringMVC注解版控制层重定向到控制层
一.概述. SpringMVC中界面请求Contorller1,Contorller1需要重定向到Contorller2中显示其他页面或者做一些业务逻辑,Spring中提供了这个功能利用"r ...
随机推荐
- React.js 小书 Lesson3 - 前端组件化(二):优化 DOM 操作
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson3 转载请注明出处,保留原文链接和作者信息. 看看上一节我们的代码,仔细留意一下 change ...
- Jersey实现文件上传下载
一 文件上传 使用ajaxFileUpload进行文件上传的前端处理.在ajaxFileupload.js中,针对服务端返回的类型增加text判断, //ajax文件上传 function ajaxF ...
- MemoryCache缓存 ---缓存时效
MemoryCache缓存 ---缓存时效测试 var cachePool = new MyCachePool(); //Thread.Sleep(1000); var value = cachePo ...
- 微信小程序里使用 Redux 状态管理
微信小程序里使用 Redux 状态管理 前言 前阵子一直在做小程序开发,采用的是官方给的框架 wepy , 如果还不了解的同学可以去他的官网查阅相关资料学习:不得不说的是,这个框架确相比于传统小程序开 ...
- 表单(form)成为 ajax 提交的表单(form)
1.form <form id="ff" method="post"> <div> <label for="name&q ...
- SublimeText插件cssrem : px转换为rem
步骤: 下载插件: https://github.com/flashlizi/cssrem 安装插件: 打开:Sublime Text 点击: Preferences 选择: Browse Packa ...
- JSP中的Property 'name' not found on type java.lang.String
如果是在forEach中出现. 那么看下items里是不是没有el表达式,只是个字符串. 今天犯了好几次. 特此记录
- python定义class
python也是面向对象的语言,类的重要性不言而喻. class Animal: def __init__(self,voice='hello'): self.voice=voice def __de ...
- Apache Module mod_ssl
http://httpd.apache.org/docs/current/mod/mod_ssl.html Description: Strong cryptography using the Sec ...
- 批处理实现虚拟WIFI
类似于360免费WiFi那个软件,可以PC发射WiFi(需要有无线网卡). 源码如下: @Echo off title Windows7 虚拟Wifi----By yllinux mode con c ...