Spring学习之旅-核心基础篇(8)

46 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情


写在前面

作为一个java程序员,spring应该都不会陌生了吧?

对于大部分程序员来说,spring的入门,估计跑起一个框架,熟悉一下开发的流程,基本上就掌握spring框架的开发了。

随着开发年限的变大,我们不能仅仅是掌握到这个地步,更应该深入的学习spring框架。

这不,接下来就是spring框架的学习之旅了,希望可以帮助到大家。

一、基于纯注解方式的使用

1.1 注解和XML混合开发遗留的问题

想一想能不能将以下这些bean的配置都从xml中去掉,并且最终将XML也去掉。如果可以,那么我们就可以脱离xml配置了。

  • 注解扫配置(能不能去掉)
<!--开启注解并扫描指定包中带有注解的类-->
<context:component-scan base-package="com.llsydn.springStudy.service" />
<context:property-placeholder src=""> </context:property-placeholder>
  • 非自定义的Bean配置(比如: SqlSessionFactory和BasicDataSource配置)
<bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name= "datasource" value="datasource"> </property>
</bean>

去掉XML后,如何创建ApplicationContext

之前创建ApplicationContext都是通过读取XML文件进行创建的。

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

1.2 @Configuration

相当于spring的XML配置文件。

从Spring3.0开始可以使用@Configuration定义配置类,可替换xml配置文件

配置类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或
AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义对象,初始化spring容器。

1.3 @Bean

相当于<bean>标签

作用为:注册bean对象,主要用来配置非自定义的bean,比如DruidDatasource、 SqlSessionFactory

@Bean标注在方法上(返回某个实例的方法)
  • 属性:
name :给当前@Bean注解方法创建的对象指定一个名称(即 bean的id)。 如果不指定,默认与标注的方法名相同。

@Bean注解默认作用域为单例singleton作用域,可通过@scope("prototype")设置为原型作用域;
  • 示例代码:
@Configuration
public class SpringConfiguration {
    //spring容器初始化时,会调用配置类的无参构造函数
    public SpringConfiguration(){
        system.out.print1n(“容器启动初始化。。。");
    }

    @Bean
    @scope("prototype")
    public SqlSessionFactory sqlSessionFactory(){
        SqlsessionFactory sqlSessionFactory = new DefaultSqlSessionFactory(); 
        sqlSessionFactory.setxxx();
        return sqlSessionFactory;
    }
}

好了,以上就是Spring学习之旅-核心基础篇(8) 的全部内容了。

今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^

如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!

image.png