Spring中的注解

Spring的配置

  1. spring 2.5前==xml

  2. spring 2.5后==xml+annotation

  3. spring 3.0后==annotation+JavaConfig配置类

注解:

1.注入类

替换:<bean id="" class=""></bean>

位置:类

语法:@Component(value="注入容器中的id,如果省略id为类名且首字母小写,value属性名称可以省略")

eg:

<bean id="user" class="com.apesource.包.User"></bean>

                                     | |等价于| |

@Component
Class User{}


注意:不能单独使用,必须配合扫描

<context:component-scan base-package=""></context:component-scan>

@Repository=====>注入数据访问层

@Service========>注入业务层

@Controller=====>注入控制层

以上三个注解与@Component功能语法一致

2.注入基本数据类型

含义:注入基本数据

替换:<property></property>

修饰:成员变量或对应的set方法

语法:@Value("数据内容")

           @Value("${key}")

注意:如果需要动态获取则需要指定加载文件

<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>


@Autowired

语法:@Autowired(required = "true-默认、false、是否必须进行装配")

修饰:成员变量或对应的set方法

含义:按照通过set方法进行“类型装配”,set方法可以省略

注意:

        1.默认是按照类型装配且同set方法

        2.若容器中有一个类型可以与之匹配则装配成功,若没有一个类型可以匹配则报错         NoSuchBeanDefinitionException

        3.若容器中有多个类型可以与之匹配,则自动切换为按照名称装配,若名称没有对应,则报错         NoUniqueBeanDefinitionException

        

3.其他注解

@Primary
含义:首选项,当类型冲突的情况下,此注解修饰的类被列为首选(备胎扶正)
修饰:类
注意:不能单独使用,必须与@Component....联合使用


@Qualifier(value="名称")
含义:按照名称装配
修饰:成员变量
注意:不能单独使用,必须与@Autowired联合使用


@Resource(name="名称")
含义:按照名称装配
修饰:成员变量
注意:单独使用


@Scope
含义:配置类的作用域
修饰:类
注意:不能单独使用,必须与@Component....联合使用
@Scope("prototype")
@Scope("singleton")
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)

@PostConstruct:初始化,修饰方法 替换init-method
@PreDestroy:销毁,修饰方法 替换destory-method

 4.spring中的新注解

@Configuration

作用:指定当前类是一个配置类

细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。


@ComponentScan

作用:用于通过注解指定spring在创建容器时要扫描的包

属性: value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。 我们使用此注解就等同于在xml中配置了: <context:component-scan base-package="com . apesource"></context: component-scan>


@Bean

作用:用于把当前方法的返回值作为bean对象存入spring的容器中

属性: name:用于指定bean的id。当不写时,默认值是当前方法的名称


@Import

作用:用于导入其他的配置类

属性: value:用于指定其他配置类的字节码。

例子:@Import(SystemSpringConfig .class)


@PropertySource

作用:用于指定properties文件的位置

属性: value:指定文件的名称和路径。

关键字:classpath,表示类路径下

配合@Value使用

例子:@PropertySource ("classpath : SystemSpringConfig .properties")

 示例说明:

@Configuration
@ComponentScan(basePackages = "com.apesource")
@PropertySource(value = "classpath:jdbc.properties")
@Import(DataConfig.class)
public class ApplicationConfig {
	
    @Bean
    public IUserController controller(/*@Autowired */IUserService service){
        return new UserControllerImp(service);
    }

    @Bean
    public IUserService service(IUserDao dao){
        return new UserServiceImp(dao);
    }

    @Bean
    public IUserDao dao(){
        return new UserDaoImp();
    }
}

相关推荐

  1. Spring注解

    2024-01-20 13:08:02       32 阅读
  2. 深入了解Spring@EventListener注解

    2024-01-20 13:08:02       18 阅读
  3. 深入理解Spring@Autowired注解

    2024-01-20 13:08:02       10 阅读
  4. Spring Boot缓存注解

    2024-01-20 13:08:02       11 阅读
  5. Spring注释

    2024-01-20 13:08:02       21 阅读
  6. Spring】5.Spring事务@Transactional注解剖析

    2024-01-20 13:08:02       12 阅读
  7. Spring常见注解

    2024-01-20 13:08:02       11 阅读

最近更新

  1. 稀疏之美:在Mojo模型中实现特征的稀疏表示

    2024-01-20 13:08:02       1 阅读
  2. AI开发者的编程语言Mojo:入门指南

    2024-01-20 13:08:02       1 阅读
  3. 跨语言的智能:在多种编程环境中部署Mojo模型

    2024-01-20 13:08:02       1 阅读
  4. Mojo编程语言详细介绍

    2024-01-20 13:08:02       1 阅读
  5. 掌握MOJO命令行:参数解析的艺术

    2024-01-20 13:08:02       1 阅读
  6. 运营商二三要素是什么?有什么意义

    2024-01-20 13:08:02       1 阅读
  7. 3102. 最小化曼哈顿距离

    2024-01-20 13:08:02       1 阅读
  8. PHP String manipulation: A comprehensive guide

    2024-01-20 13:08:02       1 阅读

热门阅读

  1. Windows 常用快捷键

    2024-01-20 13:08:02       32 阅读
  2. 洛谷 P1622 释放囚犯【区间dp】

    2024-01-20 13:08:02       35 阅读
  3. 【卡梅德生物】如何制备纳米抗体?

    2024-01-20 13:08:02       29 阅读
  4. Git 的基本概念、使用方式及常用命令

    2024-01-20 13:08:02       37 阅读
  5. C++:通过ofstream写入二进制文件内容

    2024-01-20 13:08:02       38 阅读