Spring框架(1)

 为什么要有框架?

new 对象    有耦合,需求变更,工程总会需求代码重用,以及编码效率

框架帮我们干了很多事情   我们只需要业务逻辑,耦合性帮我们解决了最基本的

举个例子:比如过盖一个房子,开发商把楼已经盖好了基本的,但是只有户型,东西都是钢筋水泥具体的东西都没有,一楼是大厅等等。。。。。(相当于框架)具体装修就需要自己来处理(相当于我们自己的代码)

 

Spring中的bean可以是一个业务处理类,数据库查询类,范围比较广泛。

spring配置文件,这些是约束xml中可以写什么东西

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

解析xml,根据xml配置通过反射来创建对象 class.forname 然后通过反射来创建对象
1.构造器注入
<bean id="user" class="spring.entity.User">
<constructor-arg type="int" value="123"></constructor-arg>
<constructor-arg type="java.lang.String" value="123"></constructor-arg>
</bean>
2.属性注入(set get)
<property name="id" value="2"></property>
<property name="name" value="321"></property>


注解方式的注入(加上这几个注解之后spring的包扫描器会扫描到对应的类,默认的名字是类的首字母小写):
@Component      公共组件
@Service 服务层
@Controller 控制层

Spring中注入是注入的接口,面向接口编程,无论实现类怎么改,对调用它的类都没有影响,因为接口没有变

这里记录一下两个注解注入:

其中,在Java代码中可以使用@Autowired或@Resource注解方式进行Spring的依赖注入。两者的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到与名称匹配的bean时,才会按类型装配。

比如:我们用@Autowired为UserDAO接口的实例对象进行注解,它会到Spring容器中去寻找与UserDAO对象相匹配的类型,如果找到该类型则将该类型注入到userdao字段中;

如果用@Resource进行依赖注入,它先会根据指定的name属性去Spring容器中寻找与该名称匹配的类型,例如:@Resource(name="userDao"),如果没有找到该名称,则会按照类型去寻找,找到之后,会对字段userDao进行注入。

通常我们使用@Resource。

使用注解注入依赖对象不用再在代码中写依赖对象的setter方法或者该类的构造方法,并且不用再配置文件中配置大量的依赖对象,使代码更加简洁,清晰,易于维护。




posted @ 2018-07-19 09:33  Gggoblin  阅读(109)  评论(0编辑  收藏  举报