spring框架的配置方案

spring框架在使用过程中,需要对它进行一系列的配置才可以使用,在spring发展过程中,配置方式也发生了一些变化:

2.5版本前====>xml
2.5版本后====>annonation+xml
3.0版本后====>annonation+javaConfig配置类

目录

 2.5版本前:xml

 2.5版本后:annonation+xml

1.注入类:用来注入对象 

2.注入数据

 3.其他注解

3.0版本后:annonation+javaConfig配置类


 

 2.5版本前:xml

2.5版本以前,配置spring框架使用的是纯xml的方法,将每个对象都使用注入进框架中,使用方法大概如下:

使用xml方式注入类有三种方式:

构造注入:使用构造方法注入bean;


       

 

Setter注入:使用Setter方法注入bean;


       

 

属性注入:使用成员属性注入bean,不推荐。原因:使用私有的成员属性变量,依靠反射实现,破坏封装,只能依靠IOC容器实现注入,不严谨;

 2.5版本后:annonation+xml

2.5版本以后,为了弥补xml配置方式的缺点:过于复杂,就有了注解和xml一起使用来配置spring的方式;常用的spring注解大致分为以下几类:

1.注入类:用来注入对象 

@Component
            含义:将注解所修饰的类(任意类)注入spring容器
            位置:类
            语法:@Component(value = "id")
                 如果省略value="id"默认注入的id为类的名称且首字母小写
            注意:不可以单独使用
               

@Repository 注入数据访问层
@Service    注入业务层
@Controller 注入控制层
            以上三个注解与@Component功能语法一致

2.注入数据

 @Value()
            含义:向属性注入基本类型与String
            语法:@Value("数据")
                 @Value("${key}")
            位置:属性
            注意:不能单独使用,需要搭配
               
 @Autowired()
            替换:自动装配属性
            位置:属性
            含义:通过“set”方法【set方法可以省略】,按照“类型”自动装配,如果类型冲突则按照"名称"装配
            注意:
                1.按类型装配如果冲突切换为名称装配
                2.按类型装配如果冲突切换为名称装配,如果名称也没有则会抛异常
                    NoUniqueBeanDefinitionException
                3.按类型装配没一个匹配
                    NoSuchBeanDefinitionException

 3.其他注解

 @Primary
            含义:在类型装配冲突的情况下,此注解所修饰的类作为首选项
            位置:类
            注意:不能单独用
 @Qualifier
            含义:按照名称装配
            位置:属性
            注意:不能单独用
@Resource
            含义:按照名称装配
            位置:属性
            注意:单独用
 @Scope
            含义:作用域

            属性值:

                        singleton :Spring只会为该bean对象只会创建唯一实例,Spring 中的 bean 默认都是单例;
                        prototype :每次获取bean,Spring会创建一个新的 bean实例;
                        request:每一次 HTTP 请求,Spring会创建一个新的 bean实例;
                        session :不同的HTTP会话,Spring会创建不同的 bean实例;
            位置:类
            注意:不能单独用
            举例:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@PreDestroy
            含义:替换destory-method
            位置:方法
            注意:单独用
@PostConstruct
            含义:替换init-method
            位置:方法
            注意:单独用

3.0版本后:annonation+javaConfig配置类

spring在3.0版本以后,为了更加优化配置方式,就有了注解加配置类的方式来配置spring框架,因此就有了一些新的注解来完成配置;

 @Configuration
            含义:配置类
            注意:调用时要使用AnnotationConfigApplicationContext(applicationConfig.class)
@ComponentScan
            替换:
@PropertySource()
            替换:
@Import()
            含义:导入其他配置类
@Bean
            含义:注入类;方法返回值为class 方法名称为id
            位置:修饰方法
            注意:单独使用无需扫描 

你可能感兴趣的:(spring,java,数据库)