JAVA
JAVA学习
蚩嗤
这个作者很懒,什么都没留下…
展开
-
Java学习--spring框架--入门使用配置文件配置AOP
建立相应的接口 ArithmeticCalculator.java public interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); } 接口的实现类 ArithmeticCalculatorImpl.java @Component("ArithmeticCalculatorI原创 2020-06-11 18:04:57 · 165 阅读 · 0 评论 -
Java学习--spring框架--入门切点表达式
切点表达式,是为了应对多个通知所重复写execution() 配置的xml文件 <context:component-scan base-package="spring.aop.aop"></context:component-scan> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> 在函数中定义一个方法,来声明切点表达式 /** * 定义一个方法,用于声明切入点表达式,一般,该方法中不在原创 2020-06-11 17:31:03 · 225 阅读 · 0 评论 -
Java学习--spring框架--入门切面优先级
当对于同一个方法加上多个相同类型的通知,如何确定这些不同通知的优先级 使用@Order注解指定优先级,值越小优先级越高 配置xml文件 <context:component-scan base-package="spring.aop.aop"></context:component-scan> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> 建立两个不同类中对同一方法建立前置通知 LoggingAspe原创 2020-06-11 17:14:49 · 183 阅读 · 0 评论 -
Java学习--spring框架--入门返回通知、异常通知、环绕通知
首先要配置好xml文件 <!-- 指定要扫名的包--> <context:component-scan base-package="spring.aop.aop"></context:component-scan> <!-- 使AspectJ起着作用:自动为匹配的类生成代理对象--> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> 1. 返回通知 返回通知可以原创 2020-06-11 17:01:47 · 345 阅读 · 0 评论 -
Java学习--spring框架--入门前置通知与后置通知
spring的AspectJ注解 AspectJ的通知类型 @Before:前置通知,在方法的执行之前执行 @After:后制通知,在方法的执行之后执行 @AfterRunning:返回通知,在方法返回结果之后执行 @AfterThrowing:异常通知,在方法抛出异常之后执行 @Around:环绕通知,围绕着方法执行 加入相应的jar包 <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --> <原创 2020-06-07 20:13:05 · 360 阅读 · 0 评论 -
Java学习--spring框架--入门AOP
AOP AOP:面向切面编程。 切面(Aspect):横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象。 通知(Advice):切面必须完成的工作。 目标(Target):被通知的对象。 代理(Peoxy):向目标对象应用通知之后创建的对象。 连接点(Joinpoint):程序执行的某个特定位置。 切点(pointcut):每个类都拥有多个连接点。 使用动态代理来实现 使用一个动态代理类来处理,在对指定的类外层加上动态代理对象,对其进行处理。 设置接口ArithmeticCalculator.ja原创 2020-06-07 10:15:29 · 174 阅读 · 0 评论 -
Java学习--spring框架--入门通过注解配置bean(2)
组件装配 context:component-scan元素还会自动注册AutowiredAnnotationBeanPostProcessor实例,该实例可以自动装配具有@Autowired、@Resource和@Inject注解的属性。 @Autowired 该注解自动装配具有兼容类型的单个Bean属性 构造器,普通字段(非public),一切具有参数的方法都可以使用该注解 默认情况下,使用该注解的属性都需要被设置,但Spring找不到匹配的Bean装配属性的时候,会抛出异常,若某一属性不被设置,可以设原创 2020-06-06 17:26:02 · 113 阅读 · 0 评论 -
Java学习--spring框架--入门通过注解配置bean(1)
1. classpath扫描组件 组件扫描:spring能够从classpath下自动扫描,检测和实例化具有特定注解的组件。 特定组将 @Component:基本注解,标识了一个受spring管理的组件。 @Respository:标识持久层组件。 @Service:标识服务层(业务层)组件。 @Controller:标识表现层组件 对于扫描到的组件,spring有默认的命名策略:使用非限定类名,第一次字母小写。也可以在注解中通过value属性标识组件的名称。 ...原创 2020-06-06 13:13:14 · 134 阅读 · 0 评论 -
Java学习--spring框架--入门自动装配
1. 自动装配模式 需要在xml中的bean元素中配置自动装配autowire属性来进行指定自动装配的模式 byType(根据类型进行自动装配):但是当同类型的bean过多的时候,就无法识别是那个bean,故将不会进行自动装配; byName(根据名称自动装配):将目标bean的名称和属性名设置完全相同; constructor(通过构造器自动装配):当bean中存在多个构造器所使,在整方式就会变得非常复杂。 2. 实现流程。 配置xml文件 <bean id="user1" class=原创 2020-05-30 18:49:29 · 129 阅读 · 0 评论 -
Java学习--spring框架--入门通过工厂方法创建bean
1. 静态工厂方法 直接调用某个类的静态方法就可以返回bean的实例 写一个用静态工厂配置的类 Car.java package spring.factory; public class Car { private String brand; private double price; public void setBrand(String brand) { this.brand = brand; } public void setPrice(d原创 2020-06-02 09:45:23 · 168 阅读 · 0 评论 -
Java学习--spring框架--入门bean生命周期
IOC容器管理bean的生命周期,Spring允许在bean生命周期的特定点执行特定任务; IOC容器对bean的生命周期进行管理的过程 通过构造器或工厂方法创建bean实例 为bean的属性设置值和对其他bean的引用 调用bean初始化方法 使用bean 容器关闭,调用bean的销毁方法 可以在bean中设置init-method和destroy-method属性,为bean指定初始化和销毁方法 ...原创 2020-05-31 17:27:04 · 143 阅读 · 0 评论 -
Java学习--spring框架--入门SpEL
Spring表达式语言(SpEL):是一种支持运行时查询和操作对象的强大的表达式语言 语法类似于EL:SpEL使用#{…}作为定界符,所有在大括号中的字符都被认为SqEL SqEl为bean的属性进行动态赋值提供了便利 通过SpEL可以实现的功能 通过bean的id对bean进行引用 调用方法以及引用对象中的属性 计算表达式的值 正则表达式的匹配 1. 设置基础的三个类 Address.java public class Address { private String city; .原创 2020-05-30 20:46:32 · 227 阅读 · 0 评论 -
Java学习--spring框架--入门使用外部属性文件
使用外部属性文件,减少配置,方便配置的动态改变 1. 创建外部属性文件 db.properties user=root password=123456 driverclass=com.mysql.jdbc.Driver jdbcurl=jdbc:mysql:///testdb 2. 引入命名空间 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XML原创 2020-05-30 20:12:58 · 144 阅读 · 0 评论 -
Java学习--spring框架--入门Bean的作用域
bean的作用域决定了对于一个bean实例化的次数与方式,设置是scope属性进行设置 singleton:默认值,容器在初始化的时候创建bean实例。在整个容器的生命周期中只会创建一次; prototype:原型,在容器初始化的时候不会去创建bean的实例,只是在每次请求时候就会创建一个新的bean实例,返回 使用默认属性的时候 配置xml文件 <bean id="car" class="spring.autowire.Car"> <property name="b原创 2020-05-30 19:38:25 · 112 阅读 · 0 评论 -
Java学习--spring框架--入门Bean之间的关系
1. 继承 bean之间的继承只是配置之间的继承,子bean继承父bean的所有配置与属性,子bean可以覆盖父bean中继承过来的内容; 父bean可以作为模板,也可以作为实例,如果只是作为模板则需要将abstract属性设置为true,这样将不会对其进行实例; 子bean并不是继承所有的父bean的属性; 子bean是可以覆盖父bean的class属性,但是此时abstract属性必须为true 设置xml文件 <bean id="address1" class="spring.aut原创 2020-05-30 19:22:11 · 146 阅读 · 0 评论 -
Java学习--spring框架--入门配置详情
1. 对象引用 设置一个类去引用另一个类 Class.java public class Class { private String className; private User user; public void setUser(User user) { this.user = user; } public User getUser() { return user; } public void setClas原创 2020-05-30 11:16:29 · 145 阅读 · 0 评论 -
Java学习--spring框架--入门依赖注入
1. 属性注入 属性注入,就是通过setter方法,注入Bean的属性或者依赖的对象 在属性注入中通常使用property元素,使用name属性指定Bean的属性名称,使用value指定属性值 <bean id="helloWorld" class="spring.beans.HelloWorld"> <property name="name" value="Spring"></property> </bean> 2. 构造器注原创 2020-05-29 12:33:27 · 134 阅读 · 0 评论 -
Java学习--spring框架--入门配置bean
1. 配置Bean的XML <!-- 配置bean class:bean的全类名,通过反射的方式在IOC容器中创建Bean。所以要求Bean中必须有无参的构造器 id:标识容器的bean,id必须唯一。 --> <bean id="helloWorld" class="spring.beans.HelloWorld"> <!-- 设置HelloWorld类中变量name的值--> <property name="name" va原创 2020-05-29 12:09:09 · 106 阅读 · 0 评论 -
Java学习--spring框架--入门了解IOC与DI
1. IOC IOC(控制反转):在常规的资源查找中,都是当组件需要的时候主动进行容器请求来获取所需要的资源,而IOC则是反其道而行之,是容器主动去将资源推送给需要该资源的组件,而组件所要做的仅仅是选择一种方式去获取发送来的资源。 2. DI DI(依赖注入):可以理解为是IOC的另一种表现形式,即以预先设计好的方式来接受容器的资源。 3. IOC的三个阶段 3.1分离接口与实现 3.2工厂设计模式 3.3反转控制 ...原创 2020-05-29 11:41:54 · 156 阅读 · 0 评论 -
Java学习--spring框架--入门HelloWorld
1. 使用idea创建一个maven项目 2. 将spring启动的基础jar包导入 在pom.xml文件中添加需要的jar <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.0.0.RELEASE</version>原创 2020-05-29 11:10:17 · 153 阅读 · 0 评论