开启掘金成长之旅!这是我参与「掘金日新计划 · 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) 的全部内容了。
今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^
如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!