Spring——使用注解开发

使用注解开发

属性的注入:
@Component:组件,放在类上,说明这个类被Spring管理了,就是bean

//@Component:组件;
//等价于<bean id="user" class="com.lyr.pojo.User"></bean>
@Component
public class User {

    public String name = "张三";
}

@Value:等价于<property name="name" value="lyr"></property>
@Component
public class User {
    @Value("lyr")
    public String name ;
}

衍生注解:

  • dao【@Repository】
  • service【@Service】
  • controller【@Controller】

这四个注解功能都是一样的,都是代表某个类注册到Spring中,装配bean

 

作用域:@Scope("prototype")  //原型模式

xml与注解:

xml用来管理bean;

注解只负责完成属性的注入;

在使用注解的过程中,要开启注解的支持:

<!--指定要扫描的包,这个包下的注解就会生效-->
<context:component-scan base-package="com.lyr"/>
<context:annotation-config/>

 

 

完全用注解替代xml配置

实体类:

package com.lyr.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;


public class User {
    private String name;

    public String getName() {
        return name;
    }

    @Value("lyr")//属性注入值
    public void setName(String name) {
        this.name = name;
    }

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

配置文件:

package com.lyr.config;

import com.lyr.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


//这个也会被Spring容器托管,注册到容器中,因为它本身也是一个@Component
//@Configuration代表这是一个配置类,就和之前的beans.xml一样
@Configuration
public class sConfig {

    //注册一个@Bean就相当于之前写的一个bean标签
    //这个方法的名字,就相当于bean标签中的id属性
    //这个方法的返回值,就相当于bean标签中的class属性
    @Bean
    public User getUser(){
        return new User();  //返回要注入bean的对象
    }
}

测试类:

import com.lyr.config.sConfig;
import com.lyr.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class myTest {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(sConfig.class);
        User user = (User) context.getBean("getUser");
        System.out.println(user.getName());
    }
}

@ComponentScan("com.l yr.pojo")  //扫描包
@Import(sConfig2.class)  //引用配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值