Spring学习(二)—— 注解简化配置文件

使用注解简化配置文件

1.组件扫描
Spring容器会通过组件扫描该包及其子包的所有类,并将有特定注解(
通用注解:@Component、@Named;
持久化层组件注解:@Repostory;
业务层组件注解@Service;
控制层组件注解:@Controller)的类纳入容器进行管理,相当于在配置文件中配置了 一个bean元素。
以下提供一个简单的示例步骤:
(1)在类前添加特定的组件注解bean的id,还可以通过@Scope指定作用域,@Lazy指定延迟加载

import org.springframework.stereotype.Component;
@Component("sb1") //组件注解
@Scope("prototype") //指定作用域
@Lazy(true) //延迟加载
public class SomeBean {

    public SomeBean(){
        System.out.println("SomeBean");
    }
	@PostConstruct 
    public void init(){
        System.out.println("init");
    }
}

(2)在配置文件中,只需添加组件扫描,指定扫描的包



<context:component-scan base-package="com.niuchen.spring.annotation"/>

2.依赖注入组件
@Autowired 支持set和构造器方式注入

@Autowired //set注解注入依赖
public void setWt(@Qualifier("wt") Waiter wt) {
    System.out.println("set");
    this.wt = wt;

*@Resource 只支持set方式注入

@Resource(name = "wt2")
public void setWt(Waiter2 wt2) {
    System.out.println("set");
    this.wt2 = wt2;
}

@Value注解 Spring表达式、基本数据类型注入

@Component("mg")
public class Manager {
    @Value("#{config2.pagesize}")
    private String pageSize;
    @Value("花千骨")
    private String name;

    public Manager(){
        System.out.println("Manager");
    }

    @Override
    public String toString() {
        return "Manager{" +
                "pageSize='" + pageSize + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
}

你可能感兴趣的:(Java)