spring
java spring框架
32224047_yw
anyway
展开
-
spring security入门--会话管理
1.说明程序代码采用之前(spring security入门--自定义UserDetails实现用户登录访问简单示例五)文章中的代码,本篇文章值给出修改部分的代码,详细代码请查看往期文章。地址:https://blog.csdn.net/qq_32224047/article/details/1086153012.会话理解会话(session)就是无状态HTTP实现用户状态可维持的一种解决方案。HTTP本身的无状态使得用户在与服务器的交互过程中,每个请求之间都没有关联性。这意味着用户得访问没原创 2020-09-16 15:02:49 · 378 阅读 · 0 评论 -
spring security入门--基于权限实现用户登录访问简单示例二
1.说明此处只做spring security 实现不同角色访问不同地址的简单示例代码,只为说明spring security的简单使用方法基本的登录可查看---spring security入门--实现用户名密码登录简单示例一地址:https://blog.csdn.net/qq_32224047/article/details/1079213872.代码示例项目结构AdminController 中的代码,做访问跳转测试用import org.springframe原创 2020-09-15 13:55:06 · 525 阅读 · 0 评论 -
spring security入门--实现用户名密码登录简单示例一
1.概述spring security默认的用户名是user,密码是随机生成的,那么能否自定义用户名和登录密码呢。spring security 提供给用户一个在整个配置中,扩展自定义逻辑的配置类主要自定义配置类,并且继承WebSecurityConfigurerAdapter,在类上添加@EnableWebSecurity注解就行,通过它就能实现自定义用户名、密码等信息2.实现过程2.1自定义一个内存用户覆盖父类方法configure(AuthenticationManagerBu原创 2020-09-15 13:16:57 · 1367 阅读 · 1 评论 -
SpringAOP多切面的执行顺序
多切面执行时,采用了责任链设计模式。切面的配置顺序决定了切面的执行顺序,多个切面执行的过程,类似于方法调用的过程,在环绕通知的proceed()执行时,去执行下一个切面或如果没有下一个切面执行目标方法,从而达成了如下的执行过程:(目标方法只会执行一次)如果目标方法抛出异常通知间的跳转顺序多个切入点责任链模式如下图Aspect1 和Aspect2两个切面类中所有通知类型的执行顺序,Method是具体的切入点,order代表优先级,它根据一个int值来判断优先级的高低,数..原创 2020-07-05 22:24:49 · 3266 阅读 · 0 评论 -
Spring的五大通知类型详解
1.前置通知在目标方法执行之前执行执行的通知。前置通知方法,可以没有参数,也可以额外接收一个JoinPoint,Spring会自动将该对象传入,代表当前的连接点,通过该对象可以获取目标对象 和 目标方法相关的信息。注意,如果接收JoinPoint,必须保证其为方法的第一个参数,否则报错配置方法:2.环绕通知在目标方法执行之前和之后都可以执行额外代码的通知。在环绕通知中必须显式的调用目标方法,否则目标方法不会执行。这个显式调用是通过ProceedingJoinPoint来实原创 2020-07-05 21:01:48 · 3509 阅读 · 0 评论 -
通过SpringJDBC的JdbcTemplate实现数据库的CRUD(增删改查)
1.概述JDBC提供了一套模板JdbcTemplate,用于Spring与JDBC的整合,使用模版类能够极大的简化原有JDBC的编程过程,可以实现一条语句实现CRUD。使用时需要在spring的配置文件中配置 <!--配置JdbcTemplate--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="原创 2020-07-05 20:08:22 · 457 阅读 · 0 评论 -
Junit中@Before与SpringAOP中@Before的区别
1.Junit中@Before在Junit中用@Before标注在方法上,可让测试方法在之前之前先执行@Before标注的方法。可以配合@@After一起使用需要导入的包import org.junit.Before;方法标注如下 @Before public void before(){ //1.初始化Spring容器 context = new ClassPathXmlApplicationContext("applicationC原创 2020-07-05 19:49:58 · 844 阅读 · 1 评论 -
Spring AOP组合使用多个切入点表达式
切入点表达式可以使用'&&','||' 和“!”。也可以通过名称来引用切入点表达式。下面的例子显示了三个切入点表达式:(anyPublicOperation如果一个方法执行连接点表示任何public方法的执行,则匹配);inTrading(如果方法执行在the trading module中,tradingOperation则匹配)和(如果方法执行代表the trading module中的public公共方法,则匹配)。@Pointcut("execution(pub...转载 2020-07-03 13:21:56 · 4040 阅读 · 0 评论 -
Spring中AOP切入点表达式
1.within表达式通过类名进行匹配 ,粗粒度的切入点表达式,最多控制到类级别语法:within(包名.类名)如下配置后类中的所有的连接点都会被表达式识别,成为切入点在within表达式中可以使用*号匹配符,匹配指定包下所有的类,注意,只匹配当前包,不包括当前包的子孙包。在within表达式中也可以用*号匹配符,匹配包在within表达式中也可以用..*号匹配符,匹配指定包下及其子孙包下的所有的类2.execution()表达式细粒度的切入点表达式,可.原创 2020-07-02 22:51:25 · 515 阅读 · 0 评论 -
java注解及自定义注解开发、使用元注解修饰注解的声明
1.注解与注释对比注释:给人看的提示信息,人看了提示信息了解程序的内容java中注释的格式:// /**/ /** */注解:sun在jdk5.0开始提供的新特性给程序看的提示信息,程序看后可以根据有无注解及注解上属性的不同配置执行不同的逻辑。java中的注解的格式:@AnnoName(key=value,...)注解在开发中,可以作为轻量化配置来使用,比起使用xml作为配置文件,更加的轻便易用,在java开发中大量的使用2.jdk内置注解@Override..原创 2020-07-02 20:53:28 · 1365 阅读 · 0 评论 -
Spring中@Autowired注解用法详解
1.概述Spring中IOC可以通过注解方式实现,只要在spring的配置文件applicationContext.xml中配置开启了包扫描Spring会自动扫描指定包及其子孙包。<!-- 开启包扫描 --><context:component-scan base-package="cn.tedu.beans"/>在类上添加注解@Component则实现了通过注解注册bean,此时这个类就被spring管理了。具体过程可以描述为:当Spring容器解析到@Comp原创 2020-07-02 15:25:44 · 12941 阅读 · 4 评论 -
spring项目启动时Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.aspectj.An
1.错误描述导入spring项目是报如下错误提示的是12行出错 ,出错的位置是初始化spring容器时,检查对应的配置文件也没有报错信息2.问题处理分析应该是spring配置文件约束等问题,重新创建spring配置文件,并重新配置包扫描,注解方式DI等,这样验证问题得到解决...原创 2020-07-02 14:08:58 · 2319 阅读 · 0 评论 -
Spring中可以将当前类注册为Spring的bean的注解
以下四个注解都能将类注册为Spring的bean,但是需要注意,不同的应用层,应该使用对应的注解,下面的注解都对应了相应的层。 @Controller - web层 @Service - service层 @Repository - dao层 @Component - 其他位置理解:虽然四个注解都能将类注册为Spring的bean,功能上无差别,但也不能乱用。打个比较恰当的比方,这些注解就好比是卫生纸。但是卫生纸可以用在很多地方,比如餐厅...原创 2020-06-28 23:20:47 · 1546 阅读 · 0 评论 -
Spring开启注解方式DI并加载额外配置信息(读取properties配置文件数据)
1.概述Spring开启注解方式DI,可以通过@Value()方式赋值,但是这样值就被写死在代码中了,增加了耦合度,和后期维护的难度。springspring 支持在外部设置属性值(基本数据类型和String类型其他集合类型可以采用预定义集合数据),就解决了这种问题。2.代码示例如下Hero类的值就是写死在代码中的public class Hero { @Value("张三") private String name; @Value("19") priva.原创 2020-06-28 23:09:20 · 316 阅读 · 0 评论 -
Spring注解方式实现IOC及ID推断规则
1.概述当使用Spring注解@Componet标注某个类时,可以指定id,如果不指定id,那么默认会是类名的小写,这是spring的一个推断功能。spring的推断功能是符合外国人的习惯,如Person,第二个字母是小写,按照习惯应该是一个单词,推断出的是person。而NBA,第二个字母是大写,按照习惯不是一个单词,则保持不变,推断出是NBA.2.代码示例创建类PErson3,pErson4,person5,在person5 上通过注解@Component("per5") 指定id为per5原创 2020-06-28 19:06:25 · 613 阅读 · 0 评论 -
Spring注解方式实现基本数据类型、String类型、集合类型数据的注入
Hero 类只需要提供属性和toString()方法,此处提供注解实现DI,所以不用写get,set方法import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.S原创 2020-06-28 16:16:38 · 2070 阅读 · 0 评论 -
Spring通过注解实现工厂创建对象
1.前言在创建对象的过程中,常常创建出的对象并不能直接使用,它可能需要若干步复杂的步骤,处理完成后才能正常使用。比如有一个网络连接的类NetConn,类中有加载配置文件的方法load(),测试网络连通性的方法ping(),连接网络的方法conn(),登陆方法login(),登陆成功发送数据的方法sendData()。当我们创建了NetConn类的对象时,并不能直接使用该对象去发送数据。因为前面还有一系列的步骤需要执行,只有执行完毕,登陆成功后才能发送数据。之前用过三种工厂模式实现了该过程,原文链接原创 2020-06-28 15:33:29 · 835 阅读 · 0 评论 -
JavaBean和类成员变量的区别与联系
1.JavaBeanJavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。特点(序列化接口可以根据需要实现):修饰的类必须是public修饰 所有属性为private 提供默认构造方法 提供getter和s原创 2020-06-28 13:51:25 · 1061 阅读 · 0 评论 -
Spring中单例多例及懒加载机制
1.单例和多例Spring容器管理的bean在默认情况下是单例的,也即,一个bean只会创建一个对象,存在内置 map中,之后无论获取多少次该bean,都返回同一个对象。Spring默认采用单例方式,减少了对象的创建,从而减少了内存的消耗。但是在实际开发中是存在多例的需求的,Spring也提供了选项可以将bean设置为多例模式。 1 2 3 4 5 6 7 ...原创 2020-06-28 12:49:11 · 1345 阅读 · 1 评论 -
Spring通过工厂创建对象的三种方法详解(工厂设计模式)
1.场景描述在创建对象的过程中,常常创建出的对象并不能直接使用,它可能需要若干步复杂的步骤,处理完成后才能正常使用。比如有一个网络连接的类NetConn,类中有加载配置文件的方法load(),测试网络连通性的方法ping(),连接网络的方法conn(),登陆方法login(),登陆成功发送数据的方法sendData()。当我们创建了NetConn类的对象时,并不能直接使用该对象去发送数据。因为前面还有一系列的步骤需要执行,只有执行完毕,登陆成功后才能发送数据。如下图,创建对象后只有执行完成图中红框处原创 2020-06-25 19:34:02 · 3693 阅读 · 1 评论 -
Spring通过无参构造及有参构造创建对象方法详解
1.通过类的无参构造创建对象当用最普通方式配置一个<bean>时,默认就是采用类的无参构造创建对象。在Spring容器初始化时,通过<bean>上配置的class属性反射得到字节码对象,通过newInstance()创建对象。(详细的创建方式,参见:https://blog.csdn.net/qq_32224047/article/details/106957319newInstance()创建对象过程:Class c = Class .forName("类的全路径原创 2020-06-25 17:24:33 · 6707 阅读 · 1 评论 -
SpringIOC实现原理及获取方式总结
1.什么是SpringSpring 被称为 J2EE 的春天,是一个开源的轻量级的 Java 开发框架, 具有控制反转(IOC)和面向切面(AOP)两大核心。Java Spring 框架通过声明式方式灵活地进行事务的管理,提高开发效率和质量。2.SpringIOC2.1IOC(DI) - 控制反转(依赖注入)所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生命周期的管理,而是在需要时由Sp原创 2020-06-25 14:56:56 · 2359 阅读 · 0 评论