spring的基础配置

spring框架的四大原则

1、使用pojo进项轻量级和最小侵入式开发;

2、通过依赖注入和基于接口编程实现松耦合;

3、通过AOP和默认习惯进行声明式编程;

4、使用AOP和模板(template)减少模式化代码。

spring所有的功能和设置都是基于这四大原则。

一、依赖注入

(1)点睛

我们常说的控制反转和依赖注入在spring环境下是同一个概念,控制反转是依赖注入实现的,所谓的依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决好自己的依赖。

依赖注入的目的主要是为了解耦,体现一种组合的概念,如果你希望你的类具备某些功能的时候,是继承自一个具有此功能的父类好呢,还是组合一个具有这样功能的类好呢?答案是不言而喻的,继承一个父类,子类将与父类耦合,组合另外一个类则使耦合度大大降低了。

spring的IoC容器负责创建bean,并通过容器将此功能的类bean注入到你需要的bean中,spring通过使用xml、java配置、groovy配置实现bean的创建和注入。

无论是xml配置、注解配置、或者java配置,都被成为怕配置元数据,所谓元数据即描述数据的数据。元数据本身不具有任何可以执行的能力,只能通过外界代码对这些数据进行解析后进行一些有意义的操作。谁陪你过容器解析这些配置元数据进行bean初始化、配置和管理依赖.

声明bean的注解

1、@Component组件 没有明确的角色;

2、@Service 在业务逻辑层(service)使用;

3、@Repository 在数据访问层(dao)使用

4、@Controller 在展现层使用

注入bean的注解  一般情况下通用

1、@Autowired :spring提供的注解;

2、@Inject :JSR-330提供的注解;

3、@Resource :JSR-250提供的注解;

这三个注解可以注解在set方法或者属性上,我习惯注解在属性上,优点是代码更少,层次更加清晰;

(2)示例:

import org.springframework.stereotype.Service;


@Service
public class test0 {

public String   sayHello(String word){
return "hello"+word;
}
}


}

代码解释:

1、使用@Service注解声明当前Test0类是Spring 管理的一个bean,其中使用@Component、@Service、@Repository和@Controller是等效的可以根据需要选用

  使用功能类的bean

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Test1 {
@Autowired
Test0 test0;
public String sayHello( String word){
return test0.sayHello(word);
}

}


代码解释:

1、使用@Service 注解声明当前的Text1是spring管理的一个bean 

2、使用@Autowired 将Test0的实体注入到Test1中让其具有Test0的功能  此处使用JSR-330的@Inject注解和JSR-250的@Resource注解是等效的



配置类:

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("/springboot-security/src/main/java/Test0.java")
public class Test2{
}

代码解释:

1、@Configuration 声明当前类是一个配置类

2、@ComponentScan  使用此注解自动扫描名下所有使用@Service、 @Configuration、@Repository和@Controller 的类并注册为bean



运行

AnnotationConfigApplicationContext   context =new   AnnotationConfigApplicationContext(Test2.class);
 Test1  test1 =context.getBean(Test1.class);

System.out.println(test1.sayHello("di"));
context.close();

代码解释:
1、使用 AnnotationConfigApplicationContext作为spring的容器接受输入一个配置类作为一个参数;
2、获得声明配置的Test1的Bean;

到此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值