开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情
写在前面
作为一个java程序员,spring应该都不会陌生了吧?
对于大部分程序员来说,spring的入门,估计跑起一个框架,熟悉一下开发的流程,基本上就掌握spring框架的开发了。
随着开发年限的变大,我们不能仅仅是掌握到这个地步,更应该深入的学习spring框架。
这不,接下来就是spring框架的学习之旅了,希望可以帮助到大家。
一、基于纯注解方式的使用
1.1 @ComponentScan
相当于context: component-scan标签
组件扫描器,扫描 @Component、@Controller、 @service、 @Repository注解的类。
该注解是编写在类上面的, 一般配合@Configuration注解一起使用。
- 属性:
basepackages: 用于指定要扫描的包。
value: 和basepackages作用一样。
- 示例代码:
Bean类( Service类) :
@service
public class UserServiceImpl implements UserService {
@override
public void saveUser(){
system.out.println("保存用户 Service实现");
}
}
配置类:
@Configuration
@Componentscan(basepackages="com.llsydn.springStudy.service")
public class SpringConfiguration {
public SpringConfiguration(){
system.out.println("容器初始化...");
}
// @Bean
// @scope("prototype")
// public Userservice userService(){
// return new UserServiceImpl(1,"张三");
// }
}
1.2 @PropertySource
相当于context:property-placeholder标签
编写在类上面,作用是加载properties配置文件
- 属性
value[]: 用于指定properties文件路径,如果在类路径下,需要写上classpath
- 示例代码
@Configuration
@propertysource("clas spath:jdbc.properties")
public class JdbcConfig {
@value("${jdbc.driver}")
private String driver;
@value("${jdbc.url}")
private String url;
@value("${jdbc.username}")
private String username;
@value("${jdbc.password}")
private String password;
/**
*创建一个数据源,并存入spring 容器中
*/
@Bean(name = "datasource")
public DataSource createDataSource(){
try {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverclass(driver);
ds.setJdbcurl(url);
ds.setUser(username) ;
ds.setPassword(password);
return ds;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
properties文件:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///spring
jdbc.username=root
jdbc.password=root
问题:
当系统中有多个配置类时怎么办呢?
想想之前使用XML 配置的时候是如何解决该问题的。
1.3 @Import
相当于spring配置文件中的<import>标签
用来组合多个配置类,在引入其他配置类时,可以不用再写@Configuration注解。当然,写上也没问题。
- 属性
value: 用来指定其他配置类的字节码文件
- 示例代码:
@Configuration
@Componentscan(basepackages="com.llsydn.springStudy")
@Import({ JdbcConfig.class })
public class SpringConfiguration {
}
@Configuration
@propertysource("classpath:jdbc.properties")
public class JdbcConfig {
}
1.4 创建纯注解方式上下文容器
- Java应用( AnnotationConfigApplicationContext )
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfiguration.class);
UserService service = context.getBean(UserService.class);
service.saveUser();
- Web应用( AnnotationConfigWebApplicationContext,后面讲解)
<web-app>
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
com.llsydn.springStudy.test.SpringConfiguration
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
好了,以上就是Spring学习之旅-核心基础篇(9) 的全部内容了。
今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^
如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!