spring的xml配置和注解配置

1.xml装配bean
(1)在使用xml注入的时候,首先要到xml中的bean标签下去配置你需要注入的文件。
(2)如果是构造方法注入,那么就在类中添加构造。如果是set方法注入,就在类中添加set方法

2.注解装配bean
(1)注解注入是直接在类中定义一个私有的类,再在类上添加@Autowired这个注解,就可以将类注入到这个方法中。
相对于xml注入就更简单了,因为xml注入可能会有构造或者set方法

什么时候初始化Spring容器创建对象?
当我们调用BeanFactory顶层接口下面的基于xml配置的实现类ClassPathXmlApplicationContext时,加载配置文件,初始化容器,获取工厂

当你使用注解的时候千万不要忘记在applicationContext.xml中配置注解扫描

SpringMVC的核心配置文件是Springmvc-servlet
Spring的核心配置文件是applicationContext.xml
mybatis的核心配置文件是mybatis-config
还有一个映射文件XxxMapper

SpringMVC的核心配置文件中有哪些重要的配置?
(1)用SpringMVC之前需要到wed.xml中配置前端控制器(初始化Spring的容器),中间还可以配置加载Springmvc-servlet指定的位置。
(2)在类中加上@RequestMapping表示在类上加上一级请求路径,用在方法上加@RequestMapping将请求映射到方法上。
(3)Springmvc-servlet中还可以配置注解扫描,还可以配置直接驱动(json转换)
(4)Springmvc的底层就是一个servlet
(5)Springmvc有几个常用注解:
1>@RequestMapping:用在类上表示请求的URL添加一级路径
用在方法上相当于RUL映射到指定的目标方法上
2>GetMapping:一般用在方法上,表示限定get请求,映射到此方法上
3>Postmapping:用在方法上

spring的知识点
(1)它的核心配置文件applicationcontext.xml
(2)它核心的三大特性是:IOC、AOP、DI

1)怎么理解ioc?
分三点来说:
1>ioc解耦生成对象,先说一下在没有IOC是什么情况。
在没有ioc之前我们需要通过new去创建对象,new去创建对象有一个不好的地方就是不能解耦。
举个例子:当在一个对象A中想去调用另一个对象B中的某一个方法,那么就需要在对象A中new一下B的对象,然后通过对象名.方法名去调用。一旦B对象或许被某些原因被删除了,那么A对象引用的时候就会立马报错。这就是解耦的体现。

2>用ioc就好比是一个容器,你将你想要创建的对象放入容器中,然后工厂帮你创建,当你要用的时候直接在里面拿就行。

3>ioc的底层就是工厂模式,工厂模式的底层就是通过反射创建对象,通过反射将你装配到容器中的对象都创建出来,然后当你需要的时候,你直接到里面拿,这样也就是控制反转了,同时也达到了解耦的效果。

2)AOP切面编程

  1. 什么是AOP?
    AOP其实是一个动态代理的过程,是对已有的方法进行增强

3)怎么把实现类放到容器中?(也就是我们说理解的实例化Bean)
据本人所知有三种方法
1)使用默认的无参构造实例把它放在容器里,底层就是通过反射调用无参构造方法将实现类在容器中创建。
2)就是哪个类已经存在,怎么将那个类放入IOC容器中?
这个有两个场景
1>就是一个对象已经在一个(非静态)方法中创建好了,将这样的一个对象放入IOC容器中是怎么放置?
这个是非静态工厂实例化bean有两步
2>应用场景:在一个类中有一个静态方法,在静态方法中返回了一个已经初始化好了的对象,如果想将该现成的对象存入到IOC容器中,就使用静态工厂方法实例化bean。
这个是静态方法的方式
4)DI注入
1>怎么将ioc容器中的对象拿出来?(也就是我们说理解的Spring的依赖注入)
所谓的依赖注入可以简单理解为:由框架帮助我们将dao层放到service中的过程
2>DI注入的方式有4种
1)构造方法注入、setter方法注入、p名称空间注入、复杂类型注入

(5)Spring的初始化和拿取工厂中的对象
1)BeanFactory这个是Spring的顶层父接口,它的下面有一个子接口叫ApplicationContext, 在ApplicationContext下面有三个常用的实现类叫classpathXmlApplicationContext、FileSystemXmlApplicationContex、AnnotationConfigApplicationContext这三个实现类都可以去创建创建工厂初始化容器,然后getbean从容器里面获取实现类。

(6)使用xml注入一定要有Applicationtext.xml这个文件,标签就是在这个xml文件中注入的

上述是XML配置的方式

下面是注解配置的形式(用注解将对象放入容器中)
(1)配置注解扫面
(2)可以用这四个注解将对象装配到容器中:@Component
@Controller、@Service、@Repository
(3)使用注解将属性注入到类中:@Autowired、@Qualifier、@Resource、@Value
1)其中@Autowired、@Qualifier、@Resource这三个方法是自动按照类型注入bean类型的,@Autowired、@Qualifier这两个标签需要连起来使用,@Resource1.9版本的jdk不能使用
2)前三种只能输入bean类型的对象,就是装配到IOC容器中的对象,如果Ioc容器中有两个对象,那么将使用@Autowired、@Qualifier注解一起拿起来用,也可以
用一个@Resource注解来注入,@Resource相当于@Autowired、@Qualifier这两个注解的功效
3)怎么理解@Autowired中自动按照类型注入,这个是这样的。它是根据类型找IOC容器中去找,看有没有这个类型的类,没有的话,就会去找这个类型的接口,找到接口后就会去拿到接口中的实现类,如果接口中有两个方法,那么就可以使用@Qualifier这个来区分了。如果没有那么就直接拿。

(4)在使用纯注解的时候出现了问题,出现的问题就是如果是你写的类或方法在它的头上添加注解是没有问题的,但是如果不是你写的类或方法,是别人已经封装好的类,这个

(5)为了简化配置文件,Spring给出了几个简化配置文件的注解。
1)@Configuration:在一个类上使用这个注解表示这个类就相当于applicationContext.xml文件
2)@ComponentScan:这个注解的作用相当于在XML中配置注解扫描
3)@PropertySource:这个注解的作用是加载外部资源文件的
4)第三方的类怎么将其装配到IOC容器中?
在一个方法内new对象,然后将对象赋值把对象的返回值作为一个bean,放入Spring容器中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值