Spring笔记
控制反转:
Hello 对象是谁创建的?
Hello对象是Spring创建的
Hello 对象的属性是怎么设置的?
Hello对象的属性是Spring容器设置的
这个过程就叫做控制反转
控制:谁来控制对象的创建,传统应用程序的对象是由程序本身创建的,
使用Spring后,对象由Spring来创建
反转:程序本身不创建对象,而变成被动的接收对象
依赖注入:就是使用set方法来进行注入
IOC是一种编程思想,由主动的编程变成被动的接收
可以通过newClassPathXmlAppliacationcontext去浏览一下底层源码
到了现在,我们彻底不需要再到程序中去改动了,要实现不同操作,
只需要xml配置文件中进行修改,所谓的IOC,一句话搞定:
对象由Spring来创建来管理,装配!
-------------------------------
Xml与注解:
xml:更加万能,使用任何场合,维护简单方便
注解:不是自己的类使用不了
xml与注解最佳实践:
xml用来管理bean 注解负责完成属性的注入
注意:使用过程中,让注解生效,必须开启注解的支持!
在类上面加上@Component <===><bean id=" user" class="com.zhs.User"/>
<!--开启注解的支持必须要有!!!--> <context:annotation-config/> <!--指定要扫描的包,这个包下面的注解就会生效--> <context:component-sacan base-packge="com.zhs"/>
-----------------------------------------
@Component衍生注解:
dao [@Resposity]
service [@Service]
controller [@Controller]
这几个注解用法一样,都是代表将某个类注册到Spring中,装配Bean
---------------------------------------
Bean的自动装配:
1.自动装配是Spring满足bean依赖一种方式
2.Spring在上下文中自动寻找,并自动给bean装配属性
在Spring中有三种装配的方式:
1.在xml中现实的配置
2.在Java中显示的配置
3.隐式的自动装配 【重要】
@Autowired:自动装配通过类型,名字
如果@Autowired不能唯一自动装配属性,则需要通过@Qualifier(value="")
byName:会自动在容器上下文查找,和自己对象set方法后面的值对应的beanid!
byType:会自动在容器上下文查找,和自己对象属性类型相同的bean
假如有三个实体类People,Cat,Dog 在实体类上加上@Autowire
<bean class="com.zhs.pojo.Cat"/> <bean class="com.zhs.pojo.Dog"/> <!--前两个类的bean没有id,只有people类有id, 使用byType,结果可以输出三个实体类的方法--> <bean id="people" class="com.zhs.pojo.People" autowire="byType"> <property name="name" value="你好啊"/>
-------------------------------------------
注解实现aop:
1.bean
<bean id="实体类" class="全限定类名"
<!--开启aop注解支持-->
<aop:aspectj-autoproxy/>
2.实体类注解
@Aspect//标注这个类是一个切面
3.方法上加上注解,切入点
//方法执行前
@Before("execution(com.zhs.service.UserServiceImp.*(..))")
//方法执行后
@After("execution(com.zhs.service.UserServiceImp.*(..))")
//环绕增强中,我峨嵋你可以给定一个参数,代表我们要获取处理切入的点
@Around("execution(com.zhs.service.UserServiceImp.*(..))")
执行顺序:环绕前 方法执行前 方法执行 环绕后 方法执行后
---------------------------------------
spring整合mybatis:
1.导入的jar
junit mysql mybatis spring-webmvc spring-jdbc aspectjweaver mybatis-spring
还有一个静态资源处理的那个绑定 build的那个
2.spring-dao.xml配置Datasource数据源,这里我们使用Spring提供的JDBC:
org.springframework.jdbc.datasource.DriverManagerDataSource
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value=" "/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
3.配置sqlSessionFactory,属性里引入datasource
4.在sqlSessionFactory里面绑定mybatis的配置文件(没有就不用)
5.引入sqlSessionTemplate

浙公网安备 33010602011771号