欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    spring随记Word文件下载.docx

    • 资源ID:19143328       资源大小:26.13KB        全文页数:19页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    spring随记Word文件下载.docx

    1、files System.out.println(磁盘信息:分区盘符:+name);分区容量:+capacity);目录数:+directories);文件数:+files);- 模拟spring容器:private Map beans = new HashMap(); public ClassPathXmlApplicationContext() throws Exception SAXBuilder saxBuilder = new SAXBuilder(); Document document = saxBuilder.build(this.getClass().getClassLoad

    2、er().getResourceAsStream(beans.xml Element rootElement = document.getRootElement(); List elements_children = rootElement.getChildren(“bean”); for(Element element : elements_children) String id = element.getAttributeValue(id String className = element.getAttributeValue(class System.out.println(id: +

    3、className Object object = Class.forName(className).newInstance(); beans.put(id, object); public Object getBean(String name) return beans.get(name);for(Element element : + id + tclassName + className); List element_properties = element.getChildren(property/可能为空 for(Element element_property : element_

    4、properties) String name_property = element_property.getAttributeValue( String name_bean = element_property.getAttributeValue(bean Object beanObject = beans.get(name_bean); String methodName = set + name_property.substring(0, 1).toUpperCase() + name_property.substring(1); System.out.println(method na

    5、me: + methodName); Method method = object.getClass().getMethod(methodName, beanObject.getClass().getInterfaces()0); method.invoke(object, beanObject); IOC 控制反转(Inversion of Control)DI 依赖注入 Dependency Injection 依赖容器注入 service依赖容器给我们注入的DAO实现类 service也是依赖容器给我们生成 与上面控制反转同一含义 反转给容器 反转前,控制在自己手里 对象由我们生成 反转

    6、后,控制在容器那,由容器生成对象以前是写实现,现在是写接口 实现类不管,由容器注入 面向抽象编程Spring开发:1、配置文件 struts_actioncom.v512.service.UserService 2、Jar包3、初始化容器BeanFactory beanFactory = new ClassPathXmlApplicationContext(UserService userService = (UserService)beanFactory.getBean(BeanFactory是更顶层接口,仅仅是一个Bean工厂,功能少 ApplicationContext所能实现的功能更多

    7、 建议用 ApplicationContextSpring容易有很多种实现方式 :如下FileSystemXmlApplicationContextClassPathXmlApplicationContext注入类型:setter构造方法接口注入constructor-arg index=/constructor-argconstructor-arg type=!- setter注入,前面已经模拟的很清楚了,UserService必须有该属性的setter方法 - 构造方法注入,UserService必须有含该属性的构造方法 -constructor-argref bean=- 参考已经有的,

    8、 bean标签指的是从新new -ID VS nameName里面可以有特殊字符 一般不用这个,了解即可基础类型直接复制 value=很少用到,将来整合时使用spring提供的它自己写好的Bean时可能用到! 还例如配置数据源,用户名 密码 连接url 数据库驱动等scope : Bean的范围默认:singleton 不论拿多少次这个对象,实际上都是同一个prototype (原型:我这里有个原型,谁要是来取的话,我就给它构造一个)跟web结合的: 只有和其他web框架整合的时候才用,才起作用,但一般不使用。request session global session 集合的注入:moreC

    9、omplexObjectexample.ComplexObject- results in a setAdminEmails(java.util.Properties) call -adminEmailspropsprop key=administratoradministratorexample.orgsupportsupportexample.orgdevelopmentdevelopmentexample.org/property- results in a setSomeList(java.util.List) call -someListlistvaluea list element

    10、 followed by a referencemyDataSource /list- results in a setSomeMap(java.util.Map) call -someMapmapentrykeyan entryjust some stringa ref- results in a setSomeSet(java.util.Set) call -someSetset/set当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap 的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各

    11、种情况下,HashMap都优先于Hashtable。Map m = Collections.synchronizedMap(new HashMap(.);貌似也不推荐,上面有待考证Java.util.Properties类是Hashtable的一个子类,设计用于String keys和String values。作为 put()和get()的替代,你应该用setProperty()和getProperty(),它们用String参数。ObjectsetProperty(Stringkey, Stringvalue) StringgetProperty(Stringkey) 自动装配:autow

    12、ire 默认no 不自动装配 需要手动装配byName byType(按类型查,有多个的话会报错)default 指的是使用在default-autowire中指定好的属性值不常用自动装备:不可预知性autowire写在bean标签上 同样 default-autowire可以写在beans上 对所有bean起作用 scope=singleton autowire=default生命周期:lazy-init容器初始化的时候它不进行初始化使用到它的时候在进行初始化beans 中default-lazy-init 很少用init-method=init destroy-method=destory

    13、web环境下使用spring,会自动的调用destroy方法关闭容器不要和prototype一起混用 spring容器不会去监视prototype类型对象的生存和死亡1、context:annotation-config/The implicitly registered post-processors include AutowiredAnnotationBeanPostProcessor, CommonAnnotationBeanPostProcessor, PersistenceAnnotationBeanPostProcessor, as well as the aforementio

    14、ned RequiredAnnotationBeanPostProcessorxmlns:xsi:声明XML Schema实例名称空间(http:/www.w3.org/2001/XMLSchema-instance),并将xsi前缀与该名称空间绑定,这样模式处理器就可以识别xsi:schemaLocation属性。用这个属性来引用(schema)模式文档,解析器可以在需要的情况下使用这个文档对 XML 实例文档进行校验。它的值(URI)是成对出现的,第一个值表示命名空间,第二个值则表示描述该命名空间的模式文档的具体位置,两个值之间以空格分隔。当然,在必要情况下,可以为 schemaLocat

    15、ion 属性指派多个这样的值对。DTD老的xsd新的2、Autowired不需要引入新的包Autowired public void setUserDAO(UserDAO userDAO) this.userDAO = userDAO; 自动帮你找一个和setter方法对应类型的(同时找到多个会报错) public void setUserDAO(Qualifier(value = daoServiceImpl1) UserDAO userDAO) 按名称!不建议写在属性上 (spring注入的第三种方式 接口注入 破坏了封装性 不建议使用)可以写在任意方法上,在调用该方法的时候帮你注入进去如

    16、果写在set上,Qualifier需要写在参数上Autowired(required=false) 本来应该注入,可不是必须的,没有也没关系Required初始化的时候必须注入Resource注解Jar包 spring lib j2ee中 common-annotations.jar不指定名称时,默认按名称(属性,或者参数的名称),名称找不到按类型。 指定名称时,只能按名称Resource(name = )- 开启自动管理和扫描 -component-scan base-package=com.mall/context:component-scan写了这个,配置文件中对于bean的配置就基本没

    17、有了!ComponentComponent(Component(value = ) 初始化的名字默认为类名首字母小写Component, Repository, Service, Controller目前版本,这4个注解没有任何区别Scope() PostConstruct PreDestroyService(value=public class UserService private UserDAO userDAO;/面向抽象编程,以前是写实现,现在是写接口 public UserService() PostConstruct public void init() System.out.pr

    18、intln(init! PreDestroy public void destory()destory!继承 (能不用尽量不用继承:不能在继承其他类,父类改了子类必须得改,耦合性太强)组合代替继承,形成一种新的设计模式,更加灵活用JDK实现动态代理的话,这个类必须实现一个接口没有实现接口的类,JDK是给它产生不了动态代理的,但是hibernate是能产生的。(直接去修改它的二进制码)面向切面编程 动态代理实现 面向对象编程之后的一个伟大的思想应用: 权限 日志 审查 代码执行效率的检查Spring 类没有实现接口的话也可以实现动态代理 内部实现: 直接生成二进制码 用继承aop:aspectj

    19、-autoproxy/aop:自动的帮我去产生代理,只要在spring的容器启动过程中,它扫描到一个东西,需要产生代理,它就会帮你产生代理。内部实现:aspectj 一个专门用来实现代理的框架 面向切面的框架2、 类库 3、 要想把切面中的方法织入进某个对象的某个方法 ,首先 那个对象必须被spring管理起来的4、 Aspect Before(execution (public void com.v512.*.save(.)5、 织入点语法 execution 是专门的方法的切入语法切入点:Pointcut :连接点的集合,它有一个名字连接点 joinpointAdvice 加在切入点上的建

    20、议Target weaveBefore(public void before()method start!Pointcut(private void beforeMethod() beforeMethod()自己写切面类的可能性比较小execution (void com.v512.*.save(.)Aspectpublic class AroundExample Around(com.xyz.myapp.SystemArchitecture.businessService() public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable / start stopwatch Object retVal = pjp.proceed(); / stop stopwatch return retVal;返回值还可以是void 和非void !voidAfter finallyAfterReturning returnAfterThrowing catch private void Method() Before(Method() public void before() AfterReturning( public void after()method afterReturning!


    注意事项

    本文(spring随记Word文件下载.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开