【注意】:在spring4之后,想要使用注解形式,必须得要引入aop的包
还需要在配置文件中引入context依赖
<?
9.1、Bean的实现
我们之前都是使用 bean 的标签进行bean注入,但是实际开发中,我们一般都会使用注解!
给类添加
@Component
注解后,这个类就交给了Spring管理,相当于一个Bean
。
等价于配置文件的:
<bean id="user" />
不添加参数时,Bean的id为这个类的类名首字母小写。
添加value属性后,id为value的值。
具体实现步骤:
在applicationContext.
<!-- 指定要扫描的包,这个包下的所有注解都会生效 --><context:component-scan base-package="com.jh.domain"/>
编写实体类,添加
@Component
注解@Component(value = "user")public class User { private String name; @Override public String toString() { return "User{" + "name='" + name + '\'' + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
测试结果,输出user,说明注解使用成功!
@Testpublic void test01() throws Exception{ ApplicationContext context = new ClassPath
9.2、属性的注入
9.2、属性的注入
我们也可以使用@Value注解为Bean注入属性
使用
@Value
注解,它的参数就是您需要注入的值。
它等价于
<property name="name" value="姓名"/>
具体实现:
为实体类的属性添加
@Value
注解@Componentpublic class User { @Value("姓名") private String name; // 使用@Value注解的属性,不需要添加set方法}
如果属性有
set
方法,也可以将@Value
注解添加在其上面@Componentpublic class User { private String name; @Value("姓名") public void setName(String name) { this.name = name; }}
9.3、衍生的注解
9.3、衍生的注解
@Component有几个衍生注解,我们在web开发中,会按照MVC三层架构分层!
为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样。
@Controller:【web层】
import org.springframework.stereotype.Controller;@Controllerpublic class UserController {}
@Service:【service层】
import org.springframework.stereotype.Service;@Servicepublic class UserServiceImpl implements UserService {}
@Repository:【dao层】
import org.springframework.stereotype.Service;@Repositorypublic class UserDaoImpl implements UserDao {}
@Component和这个三个衍生注解的功能都是一样的,都代表将其交给Spring管理,是一个Bean
【注意】要使用这个几个注解,必须现在spring配置文件了设置注解扫描
我们可以设置扫描器扫描它们的上一级包,这样就可以实现扫描所有注解
<context:component-scan base-package="com.jh"/>
使用
com.jh
包就可以扫描其下面所有的子包
9.4、自动装配的注解
9.4、自动装配的注解
在自动装配时已经提到过了,自动装配的注解
@Autowired:使用byType方式注入
@Autowired配合@Qualifier可以实现先byType,再byName
@Resource注解:先byName,再byType
详情请见:https://www.cnblogs.com/paidaxing0623/p/14312223.html
9.5、作用域
9.5、作用域
我们可以用过@Scope注解指定Bean的作用域
使用
@Scope
注解可以设定以下值
@Scope,相当于@Scope("singleton")【单例模式;默认】
@Scope("prototype")【原型模式】
@Scope("request")
@Scope("session")
等等……
一般开发中常用的是singleton和prototype两种
它相当于
具体实现:
@Component@Scopepublic class User { private String name; @Value("姓名") public void setName(String name) { this.name = name; }}
9.6、小结
9.6、小结
注解只能特定的类使用,维护相对复杂,但是开发简单方便!
注解只负责完成属性的注入
使用过程中,注意要使用注解,必须开启注解的扫描
<!-- 自动装配时使用 --><context:annotation-config/><!-- 指定要扫描的包,这个包下的所有注解都会生效 --><context:component-scan base-package="com.jh"/>
作用:
进行注解驱动注册,从而使注解生效
用于激活那些已经在spring容器里注册过的bean上面的注解,也就是显示的向Spring注册
如果不扫描包,就需要手动配置bean
如果不加注解驱动,则注入的值为null!
原文转载:http://www.shaoqun.com/a/512556.html
beien:https://www.ikjzd.com/w/1336
跨境通:https://www.ikjzd.com/w/1329
【注意】:在spring4之后,想要使用注解形式,必须得要引入aop的包 还需要在配置文件中引入context依赖<?9.1、Bean的实现我们之前都是使用bean的标签进行bean注入,但是实际开发中,我们一般都会使用注解!给类添加@Component注解后,这个类就交给了Spring管理,相当于一个Bean。等价于配置文件的:<beanid="user"/&g
鸥鹭:鸥鹭
vava:vava
跨境电商的优劣势!:跨境电商的优劣势!
迎战四季度假日旺季,你需要知道哪些趋势?:迎战四季度假日旺季,你需要知道哪些趋势?
十堰有什么地方特产 - :十堰有什么地方特产 -
没有评论:
发表评论