java 框架 spring_JAVA框架 Spring 入门

一、阐述:

IoC:我们以前写的框架虽然我们已经进行分层,web、业务层、持久层。但是各个层之间的关系。耦合性比较高,那个层调用其他层的时候,需要new对应层的类的对象,这样的话,我们以后做修改的时候,需要更改各个层的调用。

耦合性比较高,不利于维护。

而Spring提出一个IoC的方式管理各个层的资源。

IoC:inverse of  control(控制反转),也就是各个资源的实例的话权限交给spring框架。

底层也是通过工厂模式,通过配置文件方式,将每层需要的资源注入到各个层中。这种方式的开发是目前主流的开发方式。

新老旧对比:

861018df2403f474bd1b484f39a20dc9.png

二:入门

1)准备工作:

spring版本:spring-framework-4.2.4.RELEASE-dist.zip

下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/

包说明:

f00001a8781fef093335a3e4d4ed8dcc.png

1:spring依赖的包,比如说需要导入其他的包,common.io 。。。这个包里有。

f3d94149f0590ad3f84ac595ffe1651b.png

2:是spring框架使用需要的包。

其中lib里有我们需要的jar包

这里jar包都是3个:

303dbdf8713dfc8e3f2268e3b2d882f7.png

第一个是我们使用的jar包。

第二个是是文档jar包。

第三个是源码jar包。

3:第三个是我们使用的文档j压缩包。

2)导入的jar包:我们先看下spring的结构

be55c5be38993a23815bdebb5c91a68a.png

核心core  container:是底层spring  核心容器是(IoC部分)实现任何功能都需要这个核心容器,分别是:Beans配置、Core、Context、以及表达式。

分别对应下面jar包:

4e96bf1eca667ef428e190011d0a2b50.png

导入如上jar包。

日志jar包:

3a48ab2113d8d25d80cb49c55f0c4b89.png

1:是日志规范

2:是日志实现类。

如果在运行的时候报错 文件名太长,请修改目录的文件名字即可。

日志配置文件:log4j.properites 将日志配置文件拷贝到src下面。

配置文件:

1 ### direct log messages to stdout ###2 log4j.appender.stdout=org.apache.log4j.ConsoleAppender3 log4j.appender.stdout.Target=System.err4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout5 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n6

7 ### direct messages to file mylog.log ###8 log4j.appender.file=org.apache.log4j.FileAppender9 log4j.appender.file.File=c\:mylog.log10 log4j.appender.file.layout=org.apache.log4j.PatternLayout11 log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n12

13 ### set log levels - for more verbose logging change 'info' to 'debug'###14

15 log4j.rootLogger=info, stdout

使用日志:

测试类:通过静态方法getLogger获取日志的对象。

1 package jd.com.log4jtest;2

3

4 import org.apache.log4j.Logger;5 import org.junit.Test;6

7 public classlog4jTest {8 private Logger logger=Logger.getLogger(log4jTest.class);9 @Test10 public voidtest(){11 logger.info("输出日志了。");12 }13

14 }

格式:log4j+class名称。

4bba69631aa4296a684841b09baf9e1f.png

3)IoC实例:

配置文件:applicationContext.xml  名字没有固定但是一般都起这个名字。

文件内容:

1 <?xml version="1.0" encoding="UTF-8"?>

2

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

4 xsi:schemaLocation="5 http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">

6

7

8

9

1、首先约束:在解压包里:

9f5df707fa880edca05fddc56dea1f4f.pngspring-framework-4.2.4.RELEASE-dist\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html内的html文件:xsd-configuration.html 打开网页在网页的最下面有bean的约束就IoC的约束:

7d35a077a48f46587069195a0579b77e.png

标签bean,内的属性di和class。id是调用的时候名称,需要唯一。class是哪个类需要spring管理。是类的全路径。xml文件放在src下面。

接口:ApplicationContext的实现类ClassPathXmlApplicationContext 参数是xml文件路径。

代码:(以后再写类的时候,最好写一个接口,一个实现类的形式。)

接口:

1 package jd.com.IoC;2

3 public interfaceUserSerivce {4 voidsayOk();5 }

实现类:

1 package jd.com.IoC;2

3 public classUserServiceImpl implements UserSerivce {4 @Override5 public voidsayOk() {6 System.out.println("OK");7 }8 }

测试方法:

1 package jd.com.IoC;2

3

4 import org.junit.Test;5 import org.springframework.context.ApplicationContext;6 import org.springframework.context.support.ClassPathXmlApplicationContext;7

8 public classTestemo {9 @Test10 public voidtestUserService(){11 UserSerivce userSerivce= newUserServiceImpl();12 userSerivce.sayOk();13 }14 @Test15 public voidtestUserService1(){16 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");17 UserServiceImpl userSerivc= (UserServiceImpl) ac.getBean("userservice");18 userSerivc.sayOk();19 }20

21

22 @Test23 public voidtestUserService2(){24 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");25 UserSerivce userSerivce= (UserSerivce) ac.getBean("userservice");26 userSerivce.sayOk();27 }28

29

30 }

这里有三个测试方法:

1、是传统以前使用的方法,哪个类在使用哪个资源的时候,哪个类有控制该资源的权限。

2、使用的实现类的方式。

3、使用接口的方式。

推荐第三种方式。原因,如果接口有多个实现类,在调用的时候无需写多个调用方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值