如何理解spring框架,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。spring:分层的JavaSE/EE应用full-stack轻量级开源框架,以Ioc(反转控制)和AOP(面相切面编程)为内核,提供了展现层springMVC和持久层spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。优势:1、方便解耦,简化开发2、AOP编程的支持3、声明式事务的支持4、方便程序的测试5、方便集成各种优秀框架6、降低JavaEE的使用难度7、源码的经典的学习范例程序的耦合:程序键的依赖关系,包括类之间的依赖,方法间的依赖。解耦:降低程序间的依赖关系实际开发中应该做到,编译期不依赖,运行时才依赖解决思路:第一步:使用反射来创建对象,而避免使用new关键字第二步:通过读取配置文件来获取要创建的对象全限定类名。Ioc:概念:控制反转,把创建对象的权利交给框架,是框架的重要特征,并非面向对象的专用术语。它包括依赖注入和依赖查找。作用:削减计算机程序的耦合,解除我们代码中的依赖关系。使用:1、配置xml文件2、获取ioc核心容器,并且根据id获取对象ApplicationContext的三个常用实现类:1、ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下,不在的话,加载不了2、FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件,前提是有访问权限3、AnnotationConfigApplicationContext:它是用于读取注解创建容器的。ApplicationContext:它在构建核心容器时,创建对象采用的策略是采用立即加载的方式,也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象,适用单例对象BeanFactory:它在构建核心容器时,创建对象采用的策略是采用延迟加载的方式,也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象,适用多例对象创建Bean的三种方式:第一种:使用默认构造函数创建注意:如果类中没有默认构造函数,则对象无法创建第二种:使用普通工厂类中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器)第三种:使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器)Bean的作用范围调整:bean标签的scope属性作用:用于指定bean的作用范围取值:singleton:单例,默认值prototype:多例的request:作用于web应用的请求范围session:作用于web应用的会话范围global-session:作用于集群环境的会话范围,当不是集群时,它就是sessionBean的生命周期单例对象出生:当容器创建时,对象出生活着:只要容器还在,对象一直活着死亡:容器销毁,对象消亡多例对象出生:当我们使用对象时,创建活着:对象只要在使用过程中就一直活着死亡:当对象长时间不用,且没有别的对象引用时,有java的垃圾回收器回收spring的依赖注入:作用:维护依赖关系能注入的数据:1、基本类型和String2、其他bean类型(在配置文件中或者注解配置过的bean)3、复杂类型/集合类型注入的方式:1、使用构造函数提供在bean标签的内部,使用标签constructor-arg标签中的属性:type:用于指定要注入的数据的数据类型,该数据类型也是构造函数中某个或某些参数的类型index:用于指定要注入的数据给构造函数中指定索引位置的参数赋值,索引的位置从0开始name:用于指定给构造函数中指定名称的参数赋值value:用于提供基本类型和string类型的数据ref:用于指定其他bean类型数据,它指的就是在spring的Ioc核心容器中出现过的bean对象好处:在获取bean对象时,注入数据是必须的操作,否则对象无法创建成功坏处:改变了bean对象的实例化方式,使我们在创建对象时,如果用不到这些数据也必须提供。2、使用set方法提供在bean标签的内部,使用property标签的属性:name:用于指定注入时所调用的set方法名称value:用于提供基本类型和Str 香港云主机ing类型的数据ref:用于指定其他的bean类型数据。它指的就是在spring的Ioc容器中出现过的bean对象好处:创建对象时没有明确的限制,可以直接使用默认构造函数坏处:如果有某个成员必须有值,则获取对象是有可能set方法没有执行3、使用注解提供复杂类型注入(集合,数组,propertise)1、array,list,set注意:只需将property标签下对应的子标签改变成对应的类型2、map3、properties常见的Ioc注解:注意,使用注解配置时,先要修改xml的配置文件1、用于创建对象的:作用就和xml配置文件中bean标签实现的功能一样@Component作用:把当前类对象存入spring容器中属性:value:用于指定bean的id,当我们不写时,默认值是当前类名,首字母小写@Controller:一般用在表现层@Service:一般用在业务层@Repository:一般用在持久层以上三个注解他们的作用和属性于Conponent是一样的,只是为我们提供明确的三层使用的注解,使我们的三层对象更加清晰。2、用于注入数据的:作用就和xml配置文件中property标签实现的功能一样@Autowired作用;自动按照类型注入,只要容器中有唯一一个bean对象类型和要注入的变量类型匹配,就可以注入成功。如果Ioc容器中没有任何bean类型和要注入的变量类型匹配,则报错,如果Ioc容器中有多个类型匹配,根据变量名称再去匹配Ioc容器中对应类型的Id名称出现位置:可以在变量上,也可以是方法上细节:在使用注解注入时,set方法就不是必须的了@Qualifier作用:按照类中注入的基础上再按照名称注入,它在给类成员注入时不能单独使用必须与Autowired配合使用,但是在给方法参数注入时可以属性:value:用于指定注入bean的id。@Resource作用:直接按照bean的id注入,它可以单独使用属性:name:用于指定bean的id@value作用:用于注入基本数据类型和String类型的数据属性:value:用于指定数据的值,它可以使用spring中时spElspEl的写法:#{表达式}3、用于改变作用范围:作用就和在bean标签中使用scope属性实现的功能一样@Scope作用:用于指定bean的作用范围属性:value:指定范围的取值。常用:singleton(默认),prototype4、和生命周期相关:作用就和bean标准中使用init-method和destroy-method的作用一样@PreDestroy作用:用于指定销毁方法@PostConstruct作用:用于指定初始化方法Ioc的其他注解:@Configuration作用:当前类是一个配置类@ConponentScan作用:用于通过注解指定spring在创建容器时要扫描的包属性:value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。@Bean作用:用于把当前方法的返回值作为bean对象,存入spring的ioc容器中属性:name:用于指定Bean的id,默认值是当前方法的名称注意:当使用注解配置方法,如果方法有参数,spring框架会去容器中查找有没有可用bean对象,和Autowired机制一样。使用注解配置类:@import作用:用于导入其他配置类@propertySource作用:用于指定properties文件的位置属性:value,指定文件的名称和路径,classpath,表示类路径下Spring整合Junit第一步:导入spring整合Junit的jar包第二步:使用Junit提供的一个注解把原有的main方法替换成spring提供的@Runwith第三步:告知spring的运行器,spring的ioc创建是基于xml还是注解的,并且说明位置@ContextConfigurationlocation:指定xml文件的位置,加上classpath关键字,表示在类路径下classes:指定注解类所在的位置注意:当我们使用spring 5.X版本的时候,要求Junit的jar必须是4.12以上AOP:概念:面向切面编程,它就是把完美程序重复的代码抽取出来,在需要执行的时候,使用动态代理技术,在不修改源码的基础上,对完美的已有方法进行增强。相关术语:Joinpoint:连接点:简单的说就是可以被增强的方法Pointcut:切入点:简单的说就是被增强了的方法Advice:通知:拦截到joinpoint之后所要做的事情,通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。Introduction:引介:是一种特殊的通知,在不修改代码的前提下,可以在运行期为类动态的添加一些方法。Target:目标对象:被代理对象Weaving:把增强应用到目标对象来创建新的代理对象的过程Proxy:代理:一个类被AOP织入增强后,就产生一个结果代理类Aspect:切面:切入点和通知的结合基于XML方式:1、把切面添加到Ioc容器2、使用aop:config标签表明开始AOP的配置3、使用aop:aspect标签表明配置切面 id:给切面提供一个唯一标识 ref:是指定通知类bean的id4、在aop:aspect标签的内部使用对应标签来配置通知的类型 aop:before:表示配置前置通知,在切入点方法执行之前执行 method:指定logger类中哪个方法是前置通知 pointcut:用于指定切入点表达式,该表达式的含义指的是对业务层中哪些方法增强 切入点表达式的写法:execution(表达式) 表达式:访问修饰符 返回值 包名.类名.方法名(参数列表) 全通配写法 * *..*.*(..) 实际开发通常写法:* 包名.*.*(..) aop:after-returning:后置通知,在切入点方法执行之后执行 aop:after-throwing:异常通知,在切入点执行产生异常之后执行 aop:after:最终通知,无论切入点方法是否正常执行,它都会在后面执行 aop:around:环绕配置,当配置环绕通知之后,需要在切入点方法中传入参数,明确调用切入点等等基于注解方式:注意:环绕通知必须传入ProceedingJoinPoint类型参数jdbcTemplate作用:用于和数据库交互,实现对表的CRUD操作补充:可以将上面2个new出来的对象放入Ioc对象,在进行调用看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注开发云行业资讯频道,感谢您对开发云的支持。
这篇文章主要为大家展示了“电脑出现黑屏只剩下鼠标怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研 香港云主机究并学习一下“电脑出现黑屏只剩下鼠标怎么办”这篇文章吧。方法/步骤:1.按下Ctrl+Alt+Del打开任务管理器界…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。