spring 注解开发 与编写它的第三方资源配置的工厂类

19 篇文章 0 订阅
13 篇文章 0 订阅

spring 注解开发

注解启动时使用注解的形式替代xml配置,

将繁杂的spring配置文件从工程中彻底消除掉,简化书写

配置文件

<bean id="userservise"class="UserSeryiceImpl"scope="prototype"init-method="init"destroy-method="destroy"/>

id="userservise"class=“UserSeryiceImpl” 用注解 @Component(userService)代替 这里面的userService就是之前配置文件中的id值,这个注解要写在他的实体类上面,

scope=“prototype” 用注解 @Scope(“prototype”)代替 这要写到类的顶上

init-method=“init” 用注解 @PostConstruct代替 这要写到方法的顶上

destroy-method=“destroy” 用注解 @PreDestroy代替 这要写到方法的顶上

注解驱动的弊端

1.为了达成注解驱动的目的,可能会将原先很简单的书写,变的更加复杂2.XML中配盂第三方开发的资源是很方便的,但使用注解驱动无法在第三方开发的资源中进行编辑,因此会增大开发工作呈

spring中 实用的注解

启动注解功能启动

注解扫描,加载类中配适的注解项

<context: component-agan base-pakage="pakageNane"/>

这是context标签配置注解项,这么才能在类中使用spring的注解
component-agan 是扫描组建的意思
base-pakage="pakageNane"这是告诉文件对代码的那个包进行扫描
这个会将这里面的所有包,一起扫描

说明:
·在进行包所,描时,会对配置的包及其子包中所有文件进行扫描
扫描过程是以文件夹递归迭代的形式进行的,
扫描过程仅读取合法的java文件,
扫描时仅读取spring可识别的注解,
扫描结束后会将可识别的有效

注解
1.转化为spring对应的资源加入loC容器注意:,无论是注解格式还是XMI配五格式,最终都是将资源加载到oC容器中,差别仅仅是数据读取方式不同

2.从加载效率上来说注解优于XMLEE文件

<context:component-scan base-package-“com.itheima”/>

com.itheima 这么写是需要加载多个类时,他们共同的父类包名

bean的定义

名称: @Component @Controller @Service @Repository
类型:类注解
位置:类定义上方
作用:设置该类为spring管理的bean
范例:

@component
public class className { }

说明:
@Controller,
@Service、
@Repository是@Component的衍生注解,功能同@Component

相关属性 value (默认) :定义bean的访问id

注解中定义bean就是 通过注解取代配置文件bean标签的功

@Component = bean标签
@Component(bookDao) = bean标签 bookDao=bean标签id值

有了@Component 就不用在配置文件 这么来将实体类输入bean标签

@Controller,
@Service、
@Repository
这三个注解都等于@Component

@Controller, 这是写到 表现层的类上
@Service、 这是写到 业务层的类上
@Repository 这是写到 数据层的类上

@Scope这是定义作用域的注解,写在类的上方,就是原来bean标签的scope,定义单列还是非单列的。

定义bean对应的生命周期
init-method=“init” == @PostConstruct代替 这要写到方法的顶上
destroy-method=“destroy” == @PreDestroy代替 这要写到方法的顶上

//定义bean,后面添加bean的id
@Component(“userService”)
//设定bean的作用域
@Scope(“singleton”)

//设定bean的生命周期
@PreDestroy
public void destroy(){
System.out.println(“user service destroy…”);
}
//设定bean的生命周期
@PostConstruct
public void init(){
System.out.println(“user service init…”);
}

用注解加载第三方资源

加载第三方资源用 @bean注解
@bean(“dataSource”) 这是写在方法上的
作用:设置这个方法返回值作为spring管理的bean

说明
因为第二方bean无法在其源码上进行修改,使用@Bean解决第二方bean的引入问题,
该注解用于替代XMI配五中的静态工厂与实例工厂创建bean,不区分方法是否为静态或非静态
@Bean所在的类必须被spring扫描加哦,否则该注解无法生效

相关属性◆ value (默认) :定义bean的访问id

先要在pom中写出druid的坐标

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>

在配置文件中加载 druid这个第三方资源

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
      <!-- ....... -->
    </bean>

在写出一个类对druid中的数据进行获取
这个是用来获取数据库连接的,跟jdbc的工具类一样的作用
用@bean注解是将这个方法加到spring中受spring的控制
dataSource 这是给这个bean注解取的名字
@component这是用来加载这个类的,缺少@component和@Bean(“dataSource”)就不会被spring识别到

@component
public class JDBCConfig {
@Bean("dataSource")
public static DruidDataSource getDataSource(){
    DruidDataSource ds = new DruidDataSource();
    ds.setDriverClassName("com.mysql.jdbc.Driver");
    ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
    ds.setUsername("root");
    ds.setPassword("itheima");
    return ds;
}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普希托夫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值