当前位置: 首页 > news >正文

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 {@Beanpublic IUserController controller(/*@Autowired */IUserService service){return new UserControllerImp(service);}@Beanpublic IUserService service(IUserDao dao){return new UserServiceImp(dao);}@Beanpublic IUserDao dao(){return new UserDaoImp();}
}

http://www.lryc.cn/news/284577.html

相关文章:

  • JavaScript 中的事件
  • hasattr、getattr、setattr
  • 构建高可用消息队列系统 01
  • 十本你不容错过的Docker入门到精通书籍推荐
  • 【AI接口】语音版、文心一言大模型和AI绘图、图片检测API
  • VUE 中的 v-for 和 v-if 是否可以共存
  • kubernetes 权限控制
  • vue中父组件异步传值,渲染问题
  • 09前后端分离+SSM整合的小案例
  • 模仿ProTable创建ProTable组件
  • 新品发布 | 多通道总线记录仪TLog1004,是你期待的吗?
  • Double数据类型保留3位小数
  • 08- OpenCV:形态学操作(膨胀与腐蚀 、提取水平与垂直线)
  • 基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现
  • VUE---自定义指令
  • 开发安全之:Cross-Site Scripting (XSS) 漏洞
  • 代码随想录算法训练营第二十四天| 77. 组合
  • 虚拟歌姬学习:DiffSinger,让GitHub下载快的方法!
  • What is `StringEscapeUtils.escapeHtml4` does?
  • Dubbo 的心脏:理解和应用多种协议【十三】
  • 操作系统实验报告
  • IPv6--ACL6(IPv6访问控制列表--基本ACL6配置)
  • C和指针课后答案
  • C语言——大头记单词
  • 根据自己修改后的容器制作镜像并上传docker hub
  • Maven 基础安装配置及使用
  • redis 持久化机制
  • MySQL(视图,存储函数,存储过程)
  • rockchip 平台 linux FIT 打包格式介绍
  • 虚拟机安装宝塔的坑