项目中使用的spring 注解说明
以前在项目中spring 的依赖注入使用 xml 配置,现在使用 注解(Annotation) 来实现配置。
1声明bean
1.1实例
有类:
public class MyBean{
//do something
}
xml 方式:
<bean id="myBean"class="com.bean.MyBean"/>
注解方式:
@Component("myBean")
public class MyBean {
//do something
}
1.2说明
除了使用 @Component 注解,还可以使用 @Controller, @Service, @Repository 。一般情况下 service 使用 @Service ,dao 使用 @Repository ,其他的使用 @Component(@Controller 一般在使用 spring mvc 的时候使用)。
1.2.1配置scope (生命周期)
spring 默认为 "singleton" 单例,没有特别原因建议使用"prototype"
xml 方式:
<bean id="myBean" class="com.bean.MyBean" scope="prototype"/>
注解方式:
@Component("myBean")
@Scope("prototype")
public class MyBean {
}
2.注入bean
2.1实例
将 myBean 注入到 myBean2
有类:
public class MyBean{
//do something
}
public class MyBean2 {
private MyBean myBean;
//do someting
}
xml 方式:
<bean id="myBean" class="com.bean.MyBean"/>
<bean id="myBean2"class="com.bean.MyBean2">
<propertyname="myBean" ref="myBean"/>
</bean>
注解方式:
@Component("myBean")
public class MyBean {
//do something
}
@Component("myBean2")
public class MyBean2 {
@Autowired
private MyBean myBean;
//do someting
}
2.2说明
注入bean 可以使用以下注解
@Resource, @Autowired, @Inject
2.2.1注入方式
a)属性注入
@Component
public class MyBean2 {
@ Autowired
private MyBeanmyBean;
}
b)方法注入
@Component
public class MyBean2 {
private MyBean myBean;
@ Autowired
private voidsetMyBean (MyBean myBean){
this.myBean = myBean;
}
}
c)构造方法注入
@Component
public class MyBean2 {
private MyBean myBean;
@ Autowired
public MyBean2(MyBean myBean){
this.myBean = myBean;
}
}
3.其他
依赖注入的层次最好符合这样的约束:action 使用 service ;service 使用 dao.
3.1注解使用示例
public interface UserDao {
}
//通过 @Compoent 声明 spring bean,@Repository
@Scope("prototype")
public class UserDaoImpl implements UserDao {
//省略...
}
/*************************性感的分隔线**************************/
public interface UserService {
}
@Service
@Scope("prototype")
public classUserServiceImpl implements UserService {
//通过 @Autowired 注解注入 SysUserLoginDao 依赖
@Autowired
private UserDao userDao;
//省略
}
public class UserAction {
@Autowired
privateUserService userService;
public Stringexecute(){
//do something
}
}
项目中使用的spring 注解说明的更多相关文章
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- 在web项目中搭建一个spring mvc + spring + mybatis的环境
介绍:本文中示范搭建一个ssm环境的框架:使用流程就是客户端通过http请求访问指定的接口,然后由服务器接受到请求处理完成后将结果返回. 本项目请求流程细节介绍:由客户端请求到指定的接口,这个接口是个 ...
- 在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?
(1)Struts主要起控制作用,Spring主要起解耦作用,Hibernate主要起操作数据作用. (2)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为 ...
- Web项目中加载Spring配置的常用方法
1.web.xml中添加配置 <web-app> <context-param> <param-name>contextConfigLoc ...
- 为什么java web项目中要使用spring
1 不使用spring的理由 spring太复杂,不利于调试. spring太复杂,不利于全面掌控代码. spring加载bean太慢. 等等. 2 对不使用spring理由的辩驳 spring io ...
- Axis2在Web项目中整合Spring
一.说明: 上一篇说了Axis2与Web项目的整合(详情 :Axis2与Web项目整合)过程,如果说在Web项目中使用了Spring框架,那么又改如何进行Axis2相关的配置操作呢? 二.Axis2 ...
- Spring Boot项目中使用Mockito
本文首发于个人网站:Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试 ...
- Spring在Web项目中的三种启动加载的配置
在最近的项目中,使用到了spring相关的很多东西,有点把spring的配置给搞混了,从网上查到的资料以及整理了一下. 在Web项目中,启动spring容器的方式有三种,ContextLoaderLi ...
随机推荐
- UVA10173 Smallest Bounding Rectangle 最小面积矩形覆盖
\(\color{#0066ff}{题目描述}\) 给定n(>0)二维点的笛卡尔坐标,编写一个程序,计算其最小边界矩形的面积(包含所有给定点的最小矩形). 输入文件可以包含多个测试样例.每个测试 ...
- springboot整合mybatis,redis,代码(五)
redis注解开发过程中包含许多注解 1.@Cacheable 可以标记在方法上,也可以标记在类上.当标记在方法上时表示该方法是支持缓存的,当标记在类上时则表示该类所有的方法都是支持缓存的.应用到读取 ...
- js 弹性菜单
<!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...
- [AH2017/HNOI2017]礼物(FFT)
[Luogu3723] [DarkBZOJ4827] 题解 首先,有一个结论:两个手环增加非负整数亮度,等于其中一个增加一个整数亮度(可以为负) 设增加亮度为x.求\(\sum_{i=1}^{n}(a ...
- C#工具类之字符串扩展类
/// <summary> /// 字典串帮忙类 /// </summary> public static class StringHelper { /// <summa ...
- Linux下Redis安装使用,主从模式,哨兵模式与PHP扩展(PHP7适用)
一,软件准备 #redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz #phpredis 非php7使用 下载后文件名为:ph ...
- python 基础及if while for语句
#####变量######一.命名规则 1.正常命名 可以由字母,下划线和数字组成,不能以数字开头,不能和关键字重明 2.驼峰命名法 1)大驼峰:每一个单词的首字母都大写 Fi ...
- 5.SpringMVC
1.SpringMVC概述 概述: SpringMVC是基于请求驱动,围绕一个核心Servlet 转发请求到对应的Controller而设计的优点:是一个典型的教科书式的MVC构架,易学易用提供了清晰 ...
- sql运算符优先级及逻辑处理顺序--查询sql执行顺序
sql逻辑处理顺序 --开启和关闭查询 --SET STATISTICS TIME ON---------------------------------------------请先来看看SET ST ...
- ajaxfileupload.js异步上传
转载:https://www.cnblogs.com/labimeilexin/p/6742647.html jQuery插件之ajaxFileUpload ajaxFileUpload.js ...