spring

Spring简介

spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入;

spring提供IOC和AOP应用,可以将组建的耦合度降至最低,便于日后的维护和升级

spring为体统提供了一个整体的解决方案,开发者可以利用他本身提供的功能外,也可以与第三方框架技术整合应用

本质:管理软件中的对象,如何创建对象和维护对象之间的关系

Spring容器简介

1、spring容器负责配置和管理Bean;在spring中,任何的类和JavaBean都被当成Bean处理

2、spirng有两个核心接口BeanFactory和ApplicationContext两个,也可以说有着两种类型 ,后者是前者的子类,所以我们一般用后者。

3、JavaBean:就是一种特殊的java类,他提供无参构造方法,并且只有get,set方法和java对象。

Spirng如何使用

1、导入jar包。

commons-logging-1.1.1.jar
spring-beans-4.0.4.RELEASE.jar
spring-context-4.0.4.RELEASE.jar
spring-core-4.0.4.RELEASE.jar
spring-expression-4.0.4.RELEASE.jar
第一个jar不是spring框架的中的jar包,因为后四个jar包依赖第一个jar。

2、创建容器

public class Test1 {
	public static void main(String[] args) {
		//括号里面是spring的配置文件路径。
		ApplicationContext ac=
		new ClassPathXmlApplicationContext("applicationContext.xml");
		//括号里面的stu是配置文件里面bean的id
		Student stu=(Student) ac.getBean("stu");
		stu.say();
	}
}
	
   
   
		
    
    
		
    
    
	
   
   
这是配置文件。

	
   
   
		
    
    
		
    
    
	
   
   

容器创建时机:容器创建的时候

初始化时间:容器指定初始化方法的时候

销毁的时机:容器关闭的时候

延迟创建:容器创建的时候,bean对象不创建,推迟到使用该bean对象的时候,才创建。
容器默认不是延迟创建
延迟创建:lazy-init="true"
单例和非单例 scope=singleton(单例)|prototype(原型或非单例)

IOC-控制反转

1、概念:Inversion of Control 是指程序中对象的获取方式发生反转,由最初的new方式创建,转变为由第三方框架创建、注入。第三方框架一般是通过配置方式指定注入哪一个具体实现,从而降低了对象之间的耦合度

2、dl注入 分为set注入和构造注入


	
   
   
		
    
    
		
    
    
		
    
    
	
   
   
	
   
   
		
    
    
		
    
    
	
   
   
//	将属性作为构造器的参数传入,将构造器交给容器

   
   
		
    
    
		
    
    
		
    
    
		
    
    

   
   
3、自动装配--autowire


4、p命名空间

<bean id="stu"  class="com.lc.autowire.Student" p:id="1000"  p:name="张三">

p就是相当于property

5、注入bean对象

外部bean:写两个bean 用ref建立连接

内部bean:写在第一个property中的bean标签, 只能被一个对象使用

	
   
   
		
    
    
			
     
     
				
      
      
       
       北京
      
      
				
      
      
       
       上海
      
      
				
      
      
       
       南京
      
      
				
      
      
       
       天津
      
      
			
     
     
		
    
    
		
    
    
			
     
     
				
      
      
       
       三国演义
      
      
				
      
      
       
       红楼梦
      
      
				
      
      
       
       水浒传
      
      
				
      
      
       
       西游记
      
      
			
     
     
		
    
    
		
    
    
			
     
     
				
      
      
				
      
      
				
      
      
				
      
      
			
		
    
    
		
    
    
			
     
     
				
      
      
       
       com.mysql.jdbc.Driver
      
      
				
      
      
       
       jdbc:mysql://localhost/demo
      
      
				
      
      
       
       root
      
      
				
      
      
       
       root
      
      
			
     
     
		
    
    
	
   
   
	
   
   
	
   
   
		
    
    
	
   
   
	
   
   
	
   
   
		
    
    
     
     北京
    
    
		
    
    
     
     上海
    
    
		
    
    
     
     南京
    
    
		
    
    
     
     天津
    
    
	
   
   
	
   
   
	
   
   
		
    
    
	
   
   
	
   
   
	
   
   
		
    
    
	
   
   
	
   
   
		
    
    
			
     
     
		
    
    
	
   
   

注入spring表达式

1、注入一个properties文件


   
   
	
   
   
		
    
    
	    
    
    
	
   
   	

   
   
2、空字符串和null


   
   
		
    
    
	
   
   
	
   
   
		
    
    
			
     
     
		
    
    
	
   
   

注解

spring的组件扫描
1.在容器的配置文件中添加如下的
<context:component-scan
              base-package="包名"/>
扫描此包名及其包下的子包。
2.注解标识
组件的注解标识:
@Component    其他的组件
@Name    通用注解
@Repository    持久化层组件注解  Dao层的实现类上
@Service    业务层组件注解   Service层的实现类
@Controller    控制层组件注解   Servlet  servlet组件  Struts action  SpringMvc Controller
将这些注解标识扫描到容器当中,创建bean对象
等价于<bean id="" class=""></bean>
组件的注解标识命名
@注解名称   ---默认是组件的类名的首字母小写  
比如组件类  UserDaoImpl  -->userDaoImpl
自定义组件ID名称
@注解名称("")
@Scope("prototype")组件的作用域,默认是单例
--方法注解
@PostConstruct 初始化
@PreDestroy 销毁

--属性注解
@Resource  先按照name注入,然后在按照Type注入
@Autowired/@Qualifier 按照Type注入
@Inject/@Named
这些注解写在属性上方或者是set方法上

AOP-面向切面

1、什么是aop

面向切面编程

1、aop有什么用?

aop可以对业务逻辑各个部分进行隔离,从而是业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。而且以后维护和管理也比较方便。主要功能是日志记录,性能统计,安全控制,实物处理,异常处理等等。

3、连接点joinpoint:使用切面组件的具体位置。(方法)
在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。
在Spring AOP中,一个连接点总是表示一个方法的执行。
4、切入点 cutpoint:一系列的连接点的集合,使用切面组件的类(组件)
匹配连接点的断言。
通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。
切入点表达式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。
5、目标对象(Target Object): 被一个或者多个切面所通知的对象。
也被称做被通知(advised)对象。
既然Spring AOP是通过运行时代理实现的,这个对象永远是一个被代理(proxied)对象。
6、AOP代理(AOP Proxy):AOP框架创建的对象,用来实现切面契约(例如通知方法执行等等)。
在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理(cglib.jar)。

7、通知(Advice):在切面的某个特定的连接点上执行的动作。
其中包括了“around”、“before”和“after”等不同类型的通知
(通知的类型将在后面部分进行讨论)。
许多AOP框架(包括Spring)都是以拦截器做通知模型,
并维护一个以连接点为中心的拦截器链。
 8、:前置通知 before
 在某连接点之前执行的通知,
 但这个通知不能阻止连接点之前的执行流程(除非它抛出一个异常)。
 9、:后置通知  after-returning
 在某连接点正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。
 10、:异常通知 after-thorwing
 在方法抛出异常退出时执行的通知。
 11、:最终通知 after
 无论连接点是正常退出还是抛出异常后退出,都会通知。
 12、:环绕通知 around
 包围一个连接点的通知,如方法调用。
 环绕通知可以在方法调用前后完成自定义的行为。
 它也会选择是否继续执行连接点或直接返回它自己的返回值或抛出异常来结束执行。

切入点表达式

定义方法表达式:execution()
execution(返回值类型/*  对象类型--包名.类名--*.*.set*(..)  )
定义类表达式: within()
定义bean表达式 bean()
定义参数表达式 args()
定义目标 this  target

AOP中注解

@Aspect:写在类上  表示当前的类是方面组件
注意--要开启aop注解
--通知的注解  写在通知方法上
@Before:前置通知
@AfterReturning :后置通知
@AfterThrowing:异常通知
@After:最终通知
@Round:环绕通知



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和针运算符(如、等)。 3. 控制结构 C语言常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言用于封装代码的单元,可以实现代码的复用和模块化。C语言定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 针是C语言用于存储变量地址的变量。通过针,可以实现对内存的间接访问和修改。C语言定义针使用星号()符号,向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言用于存储同类型数据的结构,可以通过索引访问和修改数组的元素。字符串是C语言用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件针,用于表示打开的文件。通过文件针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值