微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring学习二

注解开发

注解开发bean

  • 给要放到容器的bean添加注解

    @Component("BookDao")
    public class BookDaoImpl implements BookDao {
    
        public void save() {
            System.out.println("Dao Save...");
        }
    }
    
  • 在xml中添加context

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
        <context:component-scan base-package="zk.dao.impl"/>
    </beans>
    
  • 如果在@component中不设定名称,那么getBean的时候就要通过类型.class来获取对象

DAO层,Service层和Controller层的写法,他们等价于Component

  • @Repository
  • @Service
  • @Controller

纯注解开发

  • 加载配置类

    @Configuration	// 配置类注解
    @ComponentScan("zk.dao.impl")	// 扫描包下的类
    public class SpringConfig {
    
    }
    
  • 修改main中的加载方式为注解加载

    public class App {
        public static void main(String[] args) {
            ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
            BookDao bookDao = (BookDao) applicationContext.getBean("BookDao");
            bookDao.save();
        }
    }
    

Bean管理

bean作用范围

  • 添加@Scope注解

    @Repository("BookDao")
    @Scope("singleton")
    public class BookDaoImpl implements BookDao {
    
        @Override
        public void save() {
            System.out.println("Dao save...");
        }
    }
    

bean生命周期

依赖注入

自动装配

  • @Autowired装配,不用写set方法
  • 按类型装配需要保证只有一个
  • 名称装配用@qualifier
  • @Value为简单值注入

配置文件

第三方Bean

管理

前期用代码管理,后期spring boot感觉会搞定

注册

依赖注入

  • 简单类型直接拿成员变量 + @Value搞
  • 引用类型只能通过配置Bean搞,加个形参,引用容器中的Bean

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐