简化ssh框架(使用注解)

首先,需要说明的是,我所了解的注解有两套,一套是spring的注解,一套是jdk自带的注解,我们一般选择其中一套即可,我比较推荐spring的注解


Spring注解: 

首先我们需要在spring的配置文件中添加一下配置

<!-- 自动扫描包,也会自动注入解析器 -->
<context:component-scan base-package="根包名"></context:component-scan>

打开spring的配置文件,找到我们要spring托管的bean

<span style="white-space:pre">	</span><bean id="myNewsAction" class="news.action.NewsAction" scope="prototype">
		<span style="color:#33ff33;"><property name="ns" ref="myNewsService"></property></span>
	</bean>
	
	<bean id="myNewsService" class="news.service.NewsServiceImpl" scope="prototype">
		<span style="color:#33ff33;"><property name="nd" ref="myNewsDao"></property></span>
	</bean>
	
	<bean id="myNewsDao" class="news.dao.NewsDaoImpl" scope="prototype">
		<span style="color:#33ff33;"><property name="sf" ref="mySessionFactory" /></span>
	</bean>
先把类中的属性注解加上,我们就可以将bean中注入的属性标记删除(代码中绿色部分),这里就示例给news.dao.NewsDaoImpl类中的sessionfactory添加注解

去到news.dao.NewsDaoImpl类中,添加如下注解

	@Autowired
	<span style="color:#ffff00;">@Qualifier("mySessionFactory")</span>
	private SessionFactory sf;
只添加@Autowired注解也可以,spring会自动将该属性注入,注入的bean名为开头字母为小写的属性名(sessionFactory),这样的话就要将application.xml中的mySessionFactory    bean名改为sessionFactory,添加@Qualifier的好处是可以指定注入的bean名,不过一般不用。基本上,我们类中的属性就是这样注入,注入完属性后,我们就可以添加上类的注解,这样我们就可以将application.xml中对应的bean给删除,即如下这些配置可删除

	<bean id="myNewsAction" class="news.action.NewsAction" scope="prototype">
		
	</bean>
	
	<bean id="myNewsService" class="news.service.NewsServiceImpl" scope="prototype">
		
	</bean>
	
	<bean id="myNewsDao" class="news.dao.NewsDaoImpl" scope="prototype">
		
	</bean>
这里还是拿news.dao.NewsDaoImpl类做示例,添加如下注解即可
@Repository
@Scope("prototype")
public class News_DaoImp implements News_Dao {
这里介绍下action、service、dao的注解语法分别是@Controller、@Service、@Repository。

@Scope("prototype")的意思是该实例为非单例,一个用户访问就创建一个实例

挨个注入完之后我们就差不多成功了,最后,我们还要更改struts.xml文件中的action标记中的calss

<action name="IndexAction.*" class="<span style="color:#3333ff;">indexAction</span>" method="{1}">
自动注入的话把类名改为小写即可,好了,我们已经将注解添加完毕,下面简单介绍一下jdk添加属性注解

jdk注解:

添加jdk属性注解我们在属性名上添加这样一条代码即可

	@Resource(name="sessionFactory")
	private SessionFactory sf;
name为注入的bean名
这样的话我们不能用jdk的注解配置类的注解,所以在spring中就要留下bean
	<bean id="myNewsAction" class="news.action.NewsAction" scope="prototype">
		
	</bean>
	
	<bean id="myNewsService" class="news.service.NewsServiceImpl" scope="prototype">
		
	</bean>
	
	<bean id="myNewsDao" class="news.dao.NewsDaoImpl" scope="prototype">
		
	</bean>


差不多就是这样了,学艺不精,个人拙见,不正之处,望各大牛指正,感激不尽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值