SpringFrameWork学习笔记-创新互联

HelloSpring
  • 对IOC方式的理解(就是抽离出一个创建对象的容器),以及property依赖set注入和无参构造注入,有参构造注入包括index、type和name三种方式,前两种会造成混淆,建议使用变量名注入,可以结合使用;
  • 对于复杂属性的注入:
  1. 单个对象在旁边配置好bean后,ref其id即可;
  2. 数组应用property双闭合标签,子标签array+多个value即可解决;
  3. List类比Array,Map应用Entry,Set没什么可说的…
  4. String属性value=""视为空字符串,嵌套视为null注入;
  5. 针对Properties对象存在Props标签,存在key属性包夹value值,
    eg:value
  • 自动装配:配置bean属性下的autowire为byName(通过id和set方法的名称进行反射装配)或者byType(确保类型唯一),需要注意的是两者只针对bean内的单个对象属性装配有效,基本数据类型会为默认值;
  • 注解自动装配@Autowired,可以配置在set方法或者对象属性上,需要注意的是其默认是根据bean配置智能选择是byType还是byName,出现混淆情况时可追加@Qualifier(value=“qualifier”)进行名称区分,此时为具体地byName装配;
  • 此外,JDK11之前,javax还默认提供@Resource注解实现与@Autowired类似的装配方式(只不过其内部装配方式的选是与@Autowired相反),同样可在value参数下指定具体地bean的id进行区分;
  • 以上装配方式多适用于对象属性;
注解开发
  1. @Component:标注在类签名之上,等价于单独bean的配置;
  2. @Controller、@Repository和@Service等价于@Component,只不过在MVC架构下可以细化bean的分类,明确层级间的分工;
  3. @Value(“value”)加注在set方法或者字段属性上(可以没有set方法),等价于property的注入;
  4. @Scope(“prototype”)标注bean的作用域;
  5. 注意以上注解仍然需要依存于ApplicationContext.xml(提供注解支持的语句),所以还是得写,尽管其并没有内容。
  6. @Configuration+@Bean和@Configurationn+@ComponentScan是额外两种注解配置bean的方法,两者都是对xml的替换,前者@Configuration标注配置类,内部用@Bean标注方法并实现返回实例,即可实现对bean的装配,默认方法名对应id;后者则是在指定bean对象上标注@Component然后再配置类上标注@Configuration+@ComponentScan(“指定扫描的包名”)即可实现对指定区域bean的装配;
动态代理 继承方式(cglib)
  • 懒得看
接口方式(JDK,AOP默认执行的方式)
  • 只需定义好执行InvocationHandler接口的调用处理程序类,然后在其中实现增强的方法和功能定义,JDK在运行时自动生成代理对象,需要注意的是动态代理中没有代理类的概念,这也正是“动态”的一种体现;但是仍然存在规范接口和实现接口的被代理类。
  • 其中InvocationHandler的invoke方法是代理入口,即代理类的增强方法被调用时触发的程序,注意是在参数method调用invoke方法时为增强方法被调用的时机,提供三个参数:
  1. ProxyInstance=代理的类实例;
  2. Method=代理类的方法;
  3. Args=方法参数;
  • 在需要代理的地方调用Proxy的代理生成静态方法,Proxy.newInstance()实例化代理接口,也需要三个参数:
  1. 接口类(被代理类)加载器,进行声明定义代理类;
  2. 规范接口数组;
  3. InvocationHandler实例;
  • 之后强转返回结果就是代理类的实例,可以通过调用增强方法实现访问代理类进而访问被代理类。
  • 需要注意的是一般在InvocationHandler会存在与被代理类(实现规范接口的类)的关联关系,以此来访问其中的待增强方法。
AOP

对功能进行横向拆分,区别维护,降低耦合度。
使用前需要导入aspectsJ依赖。
Spring注解的作用就体现在以注解为切入点的时候

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的卢龙网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
  • 执行接口:MethodBeforeAdvice、AfterReturningAdvice等, 通过执行接口完成:编写多个功能类分别实现对应接口重写方法,之后在xml中在aopconfig中配置aop:pointcut,主要是expression的配置:在这里插入图片描述
  • 自定义切面类,编写要切入的方法,之后在xml里进行AOP配置:在这里插入图片描述
  • 自定义切面类应用注解:
    在这里插入图片描述
整合Mybatis
org.mybatismybatis3.5.2mysqlmysql-connector-java5.1.47junitjunit4.12org.springframeworkspring-webmvc5.1.10.RELEASEorg.springframeworkspring-jdbc5.1.10.RELEASEorg.aspectjaspectjweaver1.9.4org.mybatismybatis-spring2.0.2
  • Spring的配置文件(版本1):
  • 其中Mybatis-Config.xml中以及被省略掉了大多数内容,同时在Mapper中写改写的SQL,在实现类中获取会话获取mapper执行方法或者增加逻辑,调用方只管调用实现类的服务即可。
  • 也可以在外部配置db.properties文件然后通过标签数显导入以及增加MapperScannerConfigurer的bean来自动配置sqlSession,Spring配置文件(版本2):
		
  • 其中的MapperScannerConfiguer作用是,扫描basePackage包下的接口,结合注入的sqlSessionFactory为每个mapper接口生成bean(调用getMapper)等待被注入到service中。
Spring事务管理
  • 首先需要注册配置事- 务管理器的bean;
  • 编程式事务:利用try{}catch{}块在异常时回滚事务;
  • 声明式事务:利用AOP增强数据库写入方法为事务提交方式:(需要引入约束)
    在这里插入图片描述
  • 其中事务的传播特性是指对于在多个被Spring增强的事务方法间存在的调用,也就是嵌套调用事务方法,被调用的方法会根据传播配置决定是否新建事务等,一般CUD用默认即可,R用Supports。
    在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

文章名称:SpringFrameWork学习笔记-创新互联
网站网址:https://www.cdcxhl.com/article26/cshsjg.html

成都网站建设公司_创新互联,为您提供外贸网站建设用户体验移动网站建设建站公司网站排名企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发