Spring入门系列:篇4——SpringIOC注解开发
2020-12-24 21:31
标签:schema one 写代码 小明 component 没有 lang base coding 我们在篇1与篇2讲的都是使用xml来配置的SpringIOC,这篇文章中我们来学习一下SpringIOC的注解开发。 要想在idea中使用注解,请确保下面这个?已经打上 在Spring4之后,我们要想使用注解的形式则必须要引入: 接着我们applicationContext.xml 我们的applicationContext.xml多了两行context约束: 并且我们需要使用以下语句来配置我们需要使用的注解的包,以便Spring进行扫描 @Component注解作用于类上,它的作用类似于: 即将User类交由Spring进行管理,并且指定id为user。 @Component还有三个衍生注解分别为: @Controller:使用在web层 @Service:使用在service层 @Repository:使用在dao层 目前这三个注解功能完全一致,都是将类交由Spring管理。这样做的目的是为了我们写代码时更好的分层。 @Value的用法很简单,就是给基本类型进行赋值。可以直接在属性定义上方直接注入: 也可以在set方法上方进行注入: @Autowired用于给引用对象进行赋值 Dog User 类似于上方代码,我们直接在dog上方贴一个@Autowired并没有指定id,Spring会在它管理的所有对象中寻找相同类型的对象给我们赋值。 但是我们平常开发过程中更喜欢显示的指定id,这时候我们可以使用@Autowired与@Qualifier共同注入,@Autowired指定了类,@Qualifier指定了id 当然,我们可以直接使用@Resource标签进行注入 @PostConstruct :标记为初始化方法初始化方法,类似init-method 用法于xml中完全一致,标记在类上方即可。 我们可以采用XML与注解整合的方式进行开发,即使用XML管理Bean,利用注解完成属性注入,在这种方式下我们可以不用使用注解扫描,即可以删除以下代码 单是我们在没有扫描的情况下还想要使用注解进行属性注入需要加上以下代码: Spring入门系列:篇4——SpringIOC注解开发 标签:schema one 写代码 小明 component 没有 lang base coding 原文地址:https://www.cnblogs.com/ThinMoon/p/13208738.html前言
一、配置注解
1.idea开启注解扫描
2.配置application.xml
spring-aop-5.0.7.RELEASE.jar
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
二、注解
1.@Component
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("user")
public class User {
String name;
}
2.属性注入注解
@Value
@Component("user")
public class User {
@Value("小明")
String name;
}
@Component("user")
public class User {
String name;
@Value("小明")
public void setName(String name) {
this.name = name;
}
}
@Autowired && @Resource
@Component("dog")
public class Dog {
@Value("旺财")
String name;
}
@Component("user")
public class User {
@Value("小明")
String name;
@Autowired
Dog dog;
}
@Component("user")
public class User {
@Value("小明")
String name;
@Autowired
@Qualifier("dog")
Dog dog;
}
@Component("user")
public class User {
@Value("小明")
String name;
@Resource(name="dog")
Dog dog;
}
3.生命周期注解
@PreDestroy:标记为销毁方法,类似destroy-method@Component("user")
public class User {
@Value("小明")
String name;
@Resource(name="dog")
Dog dog;
@PostConstruct
public void init() {
System.out.println("user--init");
}
@PreDestroy
public void destroy() {
System.out.println("user---destroy");
}
}
4.@Scope
@Component("user")
@Scope("singleton")
public class User {
@Value("小明")
String name;
@Resource(name="dog")
Dog dog;
@PostConstruct
public void init() {
System.out.println("user--init");
}
@PreDestroy
public void destroy() {
System.out.println("user---destroy");
}
}
三、xml形式与注解的区别
文章标题:Spring入门系列:篇4——SpringIOC注解开发
文章链接:http://soscw.com/index.php/essay/38012.html