Spring注解开发和注入集合

spring具体的分层操作:

1.spring他是我们开发中每层管家----管理你的所有的bean创建; dao层; service层; controller层;

2.使用各种编辑器; eclipse; idea;都是一样的操作;

spring中的内容:

spring中的bean类型:

  • 单态 (单例模型)模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。
  • 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。

我们的springbean都是通过工厂的方式来创建:

BeanFactory 接口

因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对各种底层存储方法实现。最常用的BeanFactory 定义是 XmlBeanFactory,它根据 XML 文件中的定义装入 bean,如清单 1 所示。

其实也就是说他是通过实现这个接口的方式:然后传入他的资源文件;

XmlBeanFactory ---这个也是一种创建bean的方式; 他需要使用的流;

BeanFactory factory = new XMLBeanFactory(new FileInputSteam("mybean.xml"));

在 XML 文件中定义的 Bean 是被消极加载的,这意味在需要 bean 之前,bean 本身不会被初始化。要从 BeanFactory 检索 bean,只需调用getBean() 方法,传入将要检索的 bean 的名称即可,如清单 2 所示。

getBean()---这个就是获取你的bean的时候:

MyBean mybean = (MyBean) factory.getBean("mybean");

每个 bean 的定义都可以是 POJO (用类名和 JavaBean 初始化属性定义) 或 FactoryBean。FactoryBean 接口为使用 Spring 框架构建的应用程序添加了一个间接的级别。

一、POJO(Plain Ordinary Java Object)。---就是你的实体类

简单而言,就是一个简单的对象,而且没有任何规则约束。有的时候拿 POJO 来泛指用来做传输对象 Java bean (包括今天要介绍的 DTO  VO  BO  PO 等)也是可以的。

二、DTO(Data Transfer Object)---能够传输数据的对象;

数据传输对象,单纯用来数据传输的对象。我们有的项目又分InDto 和OutDto ,顾名思义就是输入和输出的Dto

三、PO(Persistant Object)---就是我们在进行数据库操作的时候,那个和表关联的实体类;

持久对象,可以看成是与数据库中的表相映射的 Java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 不包含业务逻辑和数据逻辑。就是一个Entity(实体类) 或者说 ModelEntity 。

四、BO(Business Object) service 层的对象,就叫的是bo

业务对象,我经常使用的一个,它是和业务挂钩的,简单来说,我们每个业务可能需要很多 PO (数据库表)来组成,而我们返回前端页面或者返回给调用方的时候,我们需要组合。而这个时候, BO 就派上用场了,它就是一个对 PO 的组合,也可以就是 PO ,只是出发点是满足业务的传输对象。

五、VO(Value Object)

值对象,其实和 BO  DTO  PO 差不多,只是更形象化了, VO 更简单,没有任何思想,就是一个传输对象。

六、DAO(Data Access Object)

数据访问对象,通常是和数据层打交道的最后一层,通过 DAO 对数据库做识别操作,最终返回我们想要的数据。通常和我们的 PO  BO 等基础类型,如List 、Map 等结合使用。

1.spring在使用的时候他是解决我们哪个层的操作:

spring他就是后勤保障;他都可以进行服务;

当我们在使用spring的时候: 如果你是单个的加载一个文件:

如果你是多个bean的时候需要注入:

spring的运行原理:

String 工作原理:

我们的程序通过ApplicationContext 来加载我们的xml文件;

通过xml解析的方式然后把我们这个xml文件进行解析;java原始的解析xml文件的方式(1.java直接解析;dom; 2.sax解析;3.jdom;4. dom4j)

Spring来解析我们的xml文件的时候使用通过java程序然后使用dom4j库文件然后进行解析;

通过解析我们得到我们的bean中的 class; 就是一个类的名字;

通过第二步解析xml文件已经能够获取到class类的名字;然后通过我们的反射机制通过类名字,找到类;然后这个类中有他的set方法;或者构造方法;然后就解析类中的属性值传递过来到这个到对象上;-------这个时候就已经给我们产生对象;(产生对象时候使用我们的工厂模式,调用 beanfactory 来创建单例的对象;在内存存在)

我们使用这个创建好的对象就可以来使用;

2.spring使用的注解的方式:(通过注解方式来进行你的注入:)

1.注解:其实就是通过打标记的方式来,通过他的底层反射机制,然后找到你的类;

Spring为此提供了四个注解,这些注解的作用与上面的XML定义bean效果一致,在于将组件交给Spring容器管理。组件的名称默认是类名(首字母变小写),也可以自己修改:

@Component:当对组件的层次难以定位的时候使用这个注解

@Controller:表示控制层的组件

@Service:表示业务逻辑层的组件

@Repository:表示数据访问层的组件

以后在开发的过程中------你的每一层就可以通过注解来实现;

注意: 当你使用的注解开发的需要进行扫描包:

使用这些注解的时候还有一个地方需要注意,就是需要在applicationContext.xml中声明contex:component-scan...一项,指明Spring容器扫描组件的包目录。

创建一个我们实体类;(在你的实体类的上边加上注解; 根据你的具体的内容去注入;)

 

 

必须要通过xml文件进行扫描(其实就是扫描的你的包;)

当你要去扫描的时候:在你的xml文件中加入约束:

在你的xml文件中加入约束:

   <context:component-scan base-package="com.hfc.entity">
   </context:component-scan>
   
</beans>

就可以有:

进行测试:

2.当你使用注解开发的时候: 一类中引用另一个类的时候:(让我们的类之间有关系)

测试:

Teacher teacher=applicationContext.getBean("teacher", Teacher.class);
 System.out.println("我是一个老师:"+teacher.getName());
  System.out.println("我时候一个学生:"+teacher.getStudent().getName());

以后开发的过程中: 尽可的使用注解进行;(每一层都使用注解来标注:)

3.spring bean和 bean之间的继承

1.先对你的类和类之间进行有了继承关系:

2.然后再你的xml文件中进行我们的这个注入:

3.当你在测试的时候:子类就可以使用你的父类的属性和方法;

4. idea或者是eclispe他们在获取你的xml文件的时候:注意有的时候他会读不到他的文件:

如果我们出现找不到这个文件的时候:在你的pom文件加入(这个位置是可以变化;)

<resources>
 <resource>
 <directory>src/man/java</directory>
 <includes>
 <include>/*.xml</include>
 </includes>
 </resource>
 </resources**>

5. spring注入的时候注入集合(数组; list;set; map; 属性文件)

1.我们使用两个实体类: 用户类---user; dept这个类(部门类)

在你的这个dept这个类中有一个数组(对象数组);然后spring注入这个数组中的对象;

 1.必须在你的实体类中有这个数组属性

  

 2. 就是通过xml文件进行注入;

3.测试:

在你的数组中放入是具体的 值;不是对象的时候:

直接注入内容:

   

注入的时候;直接注入你的字符串;

 如果是数组的时候可以使用  ;

  1. spring注入list
  1. 1 首先你得在你的实体类上有list对象

2.通过xml文件注入

测试的时候直接使用遍历:

也可以哦直接注入你的值:

  

list 的时候他可以; 使用array; 也可以使用list;

  1. spring注入你的set

1.1 在你的实体类中进行对应的属性

  •  2.在你的xml文件进行注入:

进行测试:

 这个地方标签可以使用 array; list; set;

他可以注入你的基本的值:  ;**也可以注入对象; **

 spring注入 map

  •  1.就是你的实体类中的有map这个对象;

  •  2.springxml中进行注入

 3.测试:

 5.spring直接注入你的属性; propertis 这个属性文件;

 1.在你的类上有这样的一个对象;

2.在你的xml文件中间注入;

3.测试:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值