Spring 注解开发

我不是女神ヾ 2023-10-07 20:36 82阅读 0赞

一、spring的xml配置开发与注解开发的对应关系

自从2.5版本开始,Spring就支持了注解开发。一直到3.0支持纯注解开发。那么注解开发与原来的配置开发有什么关系呢?

  1. 配置中的beans对应注解开发中的配置类

    <?xml version=”1.0” encoding=”UTF-8”?>


    @Configuration //配置类
    public class SpringConfig {
    }

  2. 配置中的包扫描对应纯注解开发中的配置类的包扫描

    @Configuration
    @ComponentScan(“com.atorientsec”)
    public class SpringConfig {
    }

  3. 配置中的bean,对应纯注解开发中的@Component

    @Repository(“bookDao”) //Repository是@Component的一种变形,应用在数据层-Dao层

    1. //@Controller控制层,@Service 业务层

    public class BookDaoImpl implements BookDao {

    1. @Override
    2. public void save() {
    3. System.out.println("bookDao ....");
    4. }

    }

  4. 容器对象的获取的区别

    //加载xml配置
    ApplicationContext ctx = new ClassPathXmlApplicationContext(“ApplicationContext.xml”);
    //加载配置类
    ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

二、注解开发依赖注入

2.1 使用@Autowired注解开启自动装配模式(按类型)

  1. @Service
  2. public class BookServiceImpl implements BookService {
  3. @Autowired
  4. private BookDao bookDao;
  5. public void save(){
  6. System.out.println("Book service save...");
  7. bookDao.save();
  8. }
  9. }

2.2 注意

  • 自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,隐私无需提供setter方法
  • 自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,前能够提供唯一的构造方法。

2.3 使用@Qualifier注解开启指定名称装配bean

  1. @Service
  2. public class BookServiceImpl implements BookService {
  3. @Autowired
  4. @Qualifier("bookDao")
  5. private BookDao bookDao;
  6. public void save(){
  7. System.out.println("Book service save...");
  8. bookDao.save();
  9. }
  10. }

注意:@Qualifier注解无法单独使用,必须配合@Autowired注解使用

2.4 使用@Value注解实现简单类型注入

  1. @Repository("bookDao")
  2. public class BookDaoImpl implements BookDao {
  3. @Value("${name}")
  4. private String name;
  5. @Override
  6. public void save() {
  7. System.out.println("book Dao save...."+name);
  8. }
  9. }

jdbc.properties文件

  1. name=zhangsan

2.5 使用@PropertySource注解为配置类加载properties文件

  1. @Configuration
  2. @ComponentScan("com.atorientsec")
  3. @PropertySource({"jdbc.properties"})
  4. public class SpringConfig {
  5. }

注意:@PropertySource路径仅支持单一文件配置,多文件请使用数组格式配置,不允许使用通配符 *

发表评论

表情:
评论列表 (有 0 条评论,82人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring 注解开发

    一、spring的xml配置开发与注解开发的对应关系 自从2.5版本开始,Spring就支持了注解开发。一直到3.0支持纯注解开发。那么注解开发与原来的配置开发有什么关系

    相关 spring 注解开发

    spring 注解开发 注解:为了代替配置文件,让配置信息和java代码看起来更直观 (注,JDK1.8和spring4.0以上才兼容) 也起解释说明和检查的作用,