学好spring系列之实际开发初使用

1.到底什么是注解?

注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

其实我个人的理解注解就是一个声明的过程,有一些定义的类,接口你没有声明,按照常理来说也是不可以使用的对吧,所以为了能够调用他们,所以我们要声明一下,然后再用,这就是我个人对于注解的理解。

2.那么在spring中怎么使用注解,又有那些注解呢?

说实话,我个人的水平也不高,目前我也就学了一些常用的注解,其他的如果需要用到,上官网查看文档应该就行了。那么我们平时在开发中主要会用到哪些呢?按照我现在所了解的一般就一下这几个(主要对应MVC三个层):

持久层(Dao):@Repository

应用层(Service):@Service

控制层(Control):@Controller    //这里要说明的一点就是在action层用的时候(跟structs等框架结合的时候),我们需要注明一下应用的范围@Scope("pototype"),因为spring框架默认的scope是单例的,而structs这些要保证每次访问都要创建一个对象,保证数据的完整性,scope="prototype"来保证每一个请求有一个单独的Action来处理。

上面的就是常用的注解,但是要应用这些注解,我们还需要告诉spring,交给它来管理,这就要用到所谓的自动装配。自动装配要用到的注解(我只懂啊比较常用的是有两种):

第一种:@Autowired

@Qualifier("");//要装配的类的实例对象,注意名字要跟比定义的一致;如果是采用构造注入的话,这个要插入到构造函数那里。

一般这两个都会同时出现

第二种:@Resource //推荐使用,在要注入的地方声明一下就行;

最后介绍一种在所有的层都通用的注解@Component,上面讲到的都可以用这个替换,但为了保持层于层之间的耦合,不推荐使用。下面通过一个实例来说明一下:

完整的目录如下:


第一步要使用注解,必须在spring框架的applicationContext.xml文件里面声明:

<pre name="code" class="java"><?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:context="http://www.springframework.org/schema/context"
	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
					    http://www.springframework.org/schema/context
					    http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!--首先要声明使用注解  不过在3.0后可以不用但最后要使用 -->				    
<context:annotation-config/>
<!-- 定义声明扫描,就是说那些需要注解的地方,其实驾驶自动装配 。必须要有。-->
<context:component-scan base-package="com.annotation"/>

</beans>


 

 这样我们就可以使用注解了 

首先Dao层:

package com.annotation.dao.impl;

import org.springframework.stereotype.Repository;

import com.annotation.dao.idao.IUserDao;
//虽然我们是注解UserDaoImpl,但约定成俗的我们把后面的Impl去掉;
@Repository("UserDao")
public class UserDaoImpl implements IUserDao {

	@Override
	public void insert() {
		System.out.println("insert success--------UserDao");

	}

}
接下来到Service层:

<pre name="code" class="java">package com.annotation.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.annotation.dao.impl.UserDaoImpl;
import com.annotation.service.iservice.IUserService;
@Service("UserService")
public class UserServiceImpl implements IUserService {
	@Resource
	private UserDaoImpl UserDao;
	
	public void setUserDao(UserDaoImpl userDao) {
		UserDao = userDao;
	}


	@Override
	public void insert() {
		UserDao.insert();
		System.out.println("insert success-----------Service");
		

	}

}

 然后到了Action层: 

package com.annotation.action;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import com.annotation.service.impl.UserServiceImpl;
@Controller("UserAction")
public class UserAction {
	@Resource
	private UserServiceImpl userService;
	
	public void setUserService(UserServiceImpl userService) {
		this.userService = userService;
	}

	public void insert(){
		userService.insert();
		System.out.println("insert success---------UserAction");
	}
}

接下来我们就可以测试一下:

package com.annotation.main;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.annotation.action.UserAction;

public class domain {

	public static void main(String[] args) {
	ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
	UserAction u = (UserAction) ctx.getBean("UserAction");
	u.insert();
	}

}
这样我们就完成了一个简单的注解开发实例,结果如下:

是不是体会到了很爽的感觉,所以才会更有动力学下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值