java spring配置详解_Java进阶知识16 Spring的基础配置详解

1、SSH各个的职责

Struts2:是web框架(管理jsp、action、actionform等)。

Hibernate:是ORM框架,处于持久层。

Spring:是一个容器框架,用于配置bean,并维护bean直接的关系。

Bean(组件):java中任何一种对象,如 javabean(domin、entity、POJO、POVO)、数据源、dao、service、action等

比如:User、数据表user、UserDao、UserService、UserAction

2、Spring的原理

2.1、工作原理

1、通过Spring容器IOC(inverse of control)动态注入,把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。即程序之间不用再new对象了,且方法之间也不用相互调用了,都是同过spring的容器(applicationContext.xml)来维护他们之间的关系(创建对象/调用方法等等)。

2、通过Spring容器AOP(Aspect-Oriented Programming),可以为某一类对象进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的模块/方法)从而达到对一个模块扩充的功能。

2.2、工作流程

简单的理解:Struts2调用对应的xxxAction中的方法时,Spring容器根据相关的配置去调用对应的Service -->DAO -->entity -->数据库,最后把结果原路返回给调用者(Struts2)。

2.3、相关概念

IoC是什么?

答:IOC(inverse of control) 控制反转:所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。

DI是什么?

答:DI(dependency injection)依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术。——> IOC 等于 DI

AOP是什么?         答:AOP(Aspect-Oriented Programming)面向切面编程,就是在调用某个类对象的具体方法前/后,先去调用你指定的模块/方法,最后,程序再按原来的顺序执行下去。

2.4、Spring的几大模块

java spring配置详解_Java进阶知识16 Spring的基础配置详解_第1张图片

1) Spring Corespring的核心功能: IOC容器, 解决对象创建及依赖关系

2) Spring WebSpring对web模块的支持。

--> 可以与struts整合,让struts的action创建交给spring

--> 或者说spring mvc模式

3) Spring DAO  Spring 对jdbc操作的支持  【JdbcTemplate模板工具类】

4) Spring ORM  spring对orm的支持:

--> 既可以与hibernate整合,【session】

--> 也可以使用spring的对hibernate操作的封装

5)Spring AOP  切面编程

6)SpringEEspring 对javaEE其他模块的支持

3、基础配置(实例解析)

Dao 层

1 packagecom.shore.dao;2

3 /**

4 *@authorDSHORE/2019-10-155 *6 */

7 public classUserDao {8 privateString name;9

10 public voidsave() {11 System.out.println(name + "用户保存成功");12 }13

14 publicString getName() {15 returnname;16 }17 public voidsetName(String name) {18 this.name =name;19 }20 }

Service 层

1 packagecom.shore.service;2

3 importcom.shore.dao.UserDao;4

5 /**

6 *@authorDSHORE/2019-10-157 *8 */

9 public classUserService {10

11 privateUserDao userDao;12

13 public voidsave(){14 userDao.save();15 }16

17 publicUserDao getUserDao() {18 returnuserDao;19 }20 public voidsetUserDao(UserDao userDao) {21 this.userDao =userDao;22 }23 }

Action 层

1 packagecom.shore.action;2

3 importcom.shore.service.UserService;4

5 /**

6 *@authorDSHORE/2019-10-157 *8 */

9 public classUserAction {10

11 privateUserService userService;12

13 publicString save() {14 userService.save();15 return "success";16 }17

18 publicUserService getUserService() {19 returnuserService;20 }21 public voidsetUserService(UserService userService) {22 this.userService =userService;23 }24 }

applicationContext.xml 配置文件

1

2

3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

4 xmlns:aop="http://www.springframework.org/schema/aop"

5 xmlns:tx="http://www.springframework.org/schema/tx"

6 xsi:schemaLocation="7 http://www.springframework.org/schema/beans8 http://www.springframework.org/schema/beans/spring-beans.xsd9 http://www.springframework.org/schema/tx10 http://www.springframework.org/schema/tx/spring-tx.xsd11 http://www.springframework.org/schema/aop12 http://www.springframework.org/schema/aop/spring-aop.xsd">

13

14

21

22

23

24

25

26

27

28

29

30

31

32

33

测试类:

1 packagecom.shore.test;2

3 importorg.junit.Test;4 importorg.springframework.context.support.ClassPathXmlApplicationContext;5

6 importcom.shore.action.UserAction;7

8 /**

9 *@authorDSHORE/2019-10-1510 *11 */

12 public classMyTest {13 @Test14 public voidtest() {15 //创建IoC容器

16 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");17 UserAction userAction = (UserAction) context.getBean("userAction");18 System.out.println("UserAction返回给struts.xml的值:" +userAction.save());19 }20 }

测试结果:

java spring配置详解_Java进阶知识16 Spring的基础配置详解_第2张图片

你可能感兴趣的:(java,spring配置详解)