项目中使用的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 ...
随机推荐
- 解决Visiual Studio2012 CLR20r3问题
解决办法: 步骤1:开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio Tools-->VS2012 开发人员命令 ...
- 前端文件加载 net::ERR_CONTENT_LENGTH_MISMATCH
前端文章加载的时候有的时候图片不显示,有的时候文件加载不了,检查nginx设置都没有问题,最近才不显示,经检查是nginx服务器磁盘空间已满,将.log文件移动到其他位置 cp /dev/null ...
- Metasploit 读书笔记-持久控制
Meterpreter的persisitence脚本允许主任meterpreter代理,以确保系统重启之后Meterpreter还能运行。如果是反弹连接方式,可以设置连接攻击机的时间间隔。如果是绑定方 ...
- loj #2025. 「JLOI / SHOI2016」方
#2025. 「JLOI / SHOI2016」方 题目描述 上帝说,不要圆,要方,于是便有了这道题. 由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形.上帝把我们派到了一个有 NNN ...
- 分析mybatis和jdbc的作用,已经原理
从jdbc的操作数据库来看:主要分为几步: 1 注冊载入JDBC驱动程序: 2 得到连接对象 Connection 3 创建 Statement对象 4 运行sql语句 5 处理结果 6 关闭资源释放 ...
- git ssh密钥的使用
//配置邮箱,用户名, git config --global user.name git config --global user.email git config --global --list ...
- PHP7.1新特性一览
PHP7.0的性能是PHP5.6的两倍 http://www.phpchina.com/article-40237-1.html 可空类型 list 的方括号简写 void 返回类型 类常量属性设定 ...
- Java中的两个类:Desktop和SystemTray
在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如 ...
- shell入门基础必备
作者:KornLee 2005-02-03 15:32:57 来自:Linux先生 1.建立和运行shell程序 什么是shell程序呢? 简单的说shell程序就是一个包含若干行 shel ...
- VMware硬盘空间——扩容
VMware原来分配的硬盘空间太小了--扩容 找到VMware的安装路径,如我是默认安装的:C:\Program Files (x86)\VMware\VMware Workstation,打开该路径 ...