<context:component-scan/> 常用注释放在什么地方

@Controller声明Action组件@Service声明Service组件@Service("myMovieLister")@Repository声明Dao组件@C... @Controller 声明Action组件
@Service 声明Service组件 @Service("myMovieLister")
@Repository 声明Dao组件
@Component 泛指组件, 当不好归类时.
@RequestMapping("/menu") 请求映射
@Resource 用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")
@Autowired 用于注入,(srping提供的) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype") 设定bean的作用域
概念我都知道 我的问题是 这些东西怎么用?求大神用自己的话告诉我好吗
展开
 我来答
LXH929257102
推荐于2016-05-17 · TA获得超过489个赞
知道小有建树答主
回答量:545
采纳率:100%
帮助的人:247万
展开全部
public class DeleteAction extends BaseAction{

@Resource     
private DcnyDao dcnyDao;

public String execute(){
int id = Integer.parseInt(httpRequest.getParameter("id"));
dcnyDao.delete(id);
return SUCCESS;
}
}



@Repository
public class HibernateDcnyDao extends BaseDao implements DcnyDao {
    @Override
public boolean delete(int id) {
// TODO Auto-generated method stub
try {
Dcny dcny = new Dcny();
dcny.setId(id);
super.getHibernateTemplate().delete(dcny);
return true;
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}

public interface DcnyDao {

public boolean delete(int id);

}

先看第一个类DeleteAction,我声明了一个私有变量dcnyDao,但是没有new 出来,我却可以调出这个dcnyDao的删除方法dcnyDao.delete(id);

再看第二个类HibernateDcnyDao实现了接口DcnyDao并且重写了delete(int id)方法

期间就用到了@Resource和@Repository

追问
大神,说的真好,一下明白@Resource和@Repository的用处和用法了。可不可以再给我说说其余这四个@Controller ,@Service
@Component ,@RequestMapping("/menu")。
追答
@Controller@Service@Component@Repository他们的用法都一样,放在类的前面,把@Repository改成@Service也行,只是@Service和@Controller是用在控制层的注解,@Repository是用在持久层的注解,@Component就是用在你不知道你将要注解的类是哪个层的时候
@Resource@Autowired这2个的用法一样,用在成员变量的前面

另外个不常用,这里也不好说,你看我写的注解后面没有带参数也就是说没有写成@Resource(name = "office"),这里面不写参数和写参数都有好多要注意的,你还是看看相关资料的好
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式