当前位置: 首页 > news >正文 深圳网站建设制作设计公司网页设计html代码大全颜色 news 2025/10/27 22:36:23 深圳网站建设制作设计公司,网页设计html代码大全颜色,低价自适应网站建设,学网站设计和平面设计目录 一、第一个 Spring 项目 1、配置环境 2、Spring 的 jar 包 Maven 项目导入 jar 包和设置国内源的方法#xff1a; 3、Spring 的配置文件 4、Spring 的核心 API ApplicationContext 4、程序开发 5、细节分析 #xff08;1#xff09;名词解释 #xff08;2 3、Spring 的配置文件 4、Spring 的核心 API ApplicationContext 4、程序开发 5、细节分析 1名词解释 2Spring 工厂的相关方法 3配置文件中的细节 1、只配置 class 属性 2、name 属性 6、Spring 工厂的底层实现原理简易版 7、思考 二、Spring 与 日志框架的整合 1、Spring 如何整合日志框架 一、第一个 Spring 项目 1、配置环境 2、Spring 的 jar 包 在项目的 porm.xml 中添加 Spring 框架的支持xml 配置如下 !-- https://mvnrepository.com/artifact/org.springframework/spring-context -- dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.1.4.RELEASE/version /dependency 复制的时候注意观察当前的 pom.xml 中是否已经有 dependices 如果 jar 包下载过慢或者下载失败我们可以设置国内源来解决 Maven 项目导入 jar 包和设置国内源的方法 1、打开自己的 idea 检测 maven 的配置是否正确 这两个地方都要进行配置 然后设置 settings 文件 settings xmlnshttp://maven.apache.org/SETTINGS/1.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/SETTINGS/1.0.0https://maven.apache.org/xsd/settings-1.0.0.xsdmirrorsmirror idalimaven/id namealiyun maven/name urlhttp://maven.aliyun.com/nexus/content/groups/public//url mirrorOfcentral/mirrorOf /mirror /mirrors /settings 如果电脑中没有 settings 文件就自己创建一个如果有就直接在原来的 settings 文件上更改就行 2、如果继续出错就删除本地 maven 仓库的 jar 包重新下载 3、当前网络运营商有问题就尝试更换链接的数据源使用更好的网络如果还是不行就间隔一段时间之后再去尝试 3、Spring 的配置文件 1、配置文件的放置位置任意位置没有硬性要求 2、配置文件的命名没有硬性要求建议叫 applicationContext.xml 接下来我们思考一个问题 Spring 框架如何知道开发人员未来会把配置文件放在哪里叫什么名字呢 所以日后应用 Spring 框架时需要进行配置文件路径的设置 按照图中步骤在 resourses 下创建好一个文件并按照建议给它命名为 applicationContext.xml 此时我们就会发现整个 Spring 的配置文件就帮我们建好了 4、Spring 的核心 API ApplicationContext 作用Spring 提供的 ApplicationContext 这个工厂主要的作用就是用于对象的创建 好处解耦合 ApplicationContext 是一个接口类型 接口的主要目的屏蔽实现的差异工厂可能会应用到不同的开发场景下不同的开发场景有不同的特点 Spring 主要提供两种类型的工厂 1、非 web 环境ClassPathXmlApplicationContextmainjunit 2、web 环境XmlWebApplicationContext 我们称 ApplicationContext 是一个重量级资源 那么什么是一个重量级资源 如果一个对象对内存占用的比较多那么我们就称之为重量级资源 这也就意味着ApplicationContext 这个工厂的对象会占用大量的内存 正因为它的内存占用比较多所以我们不会频繁的创建对象一个应用只会创建一个工厂对象 也正是因为它有这样的特点所以这个对象就有可能会出现并发访问多线程访问的情况 所以ApplicationContext 工厂一定是线程安全的多线程并发访问 4、程序开发 Spring 提供的工厂和我们自己写的工厂本质上是没有差异的都是解耦合的 那么对于 Spring 来讲它的工厂使用和我们前面所总结的通用工厂的使用方式本质上是没有区别的 1、创建类型 2、配置文件的配置 applicationContext.xml 3、通过工厂类获得对象 ApplicationContext 1、创建类型 2、配置文件的配置 我们要在 beans 下面创建一个子标签里面有两个属性id 和 class id 属性就是起个名字命名唯一的 class 属性配置所需要创建的文件的全限定名 虽然组织形式不同但是所需要的要素是完全一样的 通过这步我们也告诉了 Spring 需要生产 Person 对象 3、通过工厂类获得对应的对象 //用于测试 Spring 的第一个程序public static void test() {//1、获得 Spring 工厂ApplicationContext ctx new ClassPathXmlApplicationContext(/applicationContext.xml);//2、通过工厂类来获得对象Person person (Person) ctx.getBean(person);System.out.println(person person);} 此时我们会发现这个对象的引用打印出来了 说明这个对象由 Spring 的工厂创建完成了 5、细节分析 1名词解释 Spring 工厂创建的对象叫做 bean 或者 组件componet 2Spring 工厂的相关方法 //通过这种⽅式获得对象就不需要强制类型转换 Person person ctx.getBean(person, Person.class); System.out.println(person person);//当前Spring的配置⽂件中 只能有⼀个bean class是Person类型 Person person ctx.getBean(Person.class); System.out.println(person person);//获取的是 Spring⼯⼚配置⽂件中所有bean标签的id值 String[] beanDefinitionNames ctx.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) {System.out.println(beanDefinitionName beanDefinitionName); }//根据类型获得Spring配置⽂件中对应的id值 String[] beanNamesForType ctx.getBeanNamesForType(Person.class); for (String id : beanNamesForType) {System.out.println(id id); }//⽤于判断是否存在指定id值得bean if (ctx.containsBeanDefinition(a)) {System.out.println(true true); }else{System.out.println(false false); }//⽤于判断是否存在指定id值得bean if (ctx.containsBean(person)) {System.out.println(true true); }else{System.out.println(false false); } 3配置文件中的细节 1、只配置 class 属性 bean classPerson/ 上述这种配置有没有 id 值呢 我们可以借助上面的 ctx.getBeanDefinitionNames(); 来进行观察 我们发现spring 会自动生成一个 id 的默认值所以我们没有给它设定 id 但是实际上还是存在一个 id 与之对应的 应用场景如果这个 bean 只需要使用一次那么就可以省略 id 值反之如果这个 bean 会使用多次或者被其它 bean 引用则需要设置 id 值 2、name 属性 用于在 Spring 的配置文件中为 bean 对象定义别名小名 bean idperson1 namep classPerson /bean id 与 name 相同点 1、ctx.getBean( id | name ) ; 都可以获取到对象 2、 bean id class 和 bean name class 二者是等效的 id 和 name 的区别 1、别名可以定义多个但是 id 只能是一个 2、XML 的 id 属性的值命名的时候要求必须要以字母开头字母数字下划线连字符不能以特殊字符开头比如 / 而 name 属性的值在命名的时候是没有要求的所以 name 属性会应用在特殊命名的场景下但是 xml 发展到了今天id 的属性的限制已经不存在了 3、代码的区别 //⽤于判断是否存在指定id值得bean,不能判断name值if (ctx.containsBeanDefinition(person)) {System.out.println(true true);}else{System.out.println(false false);}//⽤于判断是否存在指定id值得bean,也可以判断name值if (ctx.containsBean(p)) {System.out.println(true true);}else{System.out.println(false false);} 6、Spring 工厂的底层实现原理简易版 反射的底层是否会调用构造方法呢 虽然反射创建了对象但是底层也一定会调用这个对象的构造方法无参所以我们也可以认为反射创建对象就等效于我们的 new 创建对象 如果这个构造方法是私有的怎么办呢 private 修饰的只能在本类调用而显然 String 是外类 通过代码实验我们能发现即使构造方法被设为了私有的private 的构造方法依旧会被调用 底层还是通过反射来实现的因为反射能够调用一个类的私有的属性和构造方法所以 Spring 工厂是可以调用对象私有的构造方法来创建对象的 7、思考 未来在开发过程中是不是所有的对象都会被交给 Spring 工厂来创建呢 理论上来说是的但是有特例实体对象entity 实体对象是不会交给 Spring 创建的是由持久层框架来进行创建的。 二、Spring 与 日志框架的整合 Spring 与日志框架整合日志框架就可以在控制台中输出 Spring 框架运行过程中的一些重要的信息 好处便于我们了解 Spring 框架的运行过程利于程序的调试 1、Spring 如何整合日志框架 Spring 的不同版本针对于日志框架的整合以及整合的内容和方式是有一些区别的 比如Spring 1.2.3早期的日志框架都是与 common-logging.jar 这个日志进行整合的 Spring 5.x 默认整合的日志框架是 logback 或者 log4j2 根据我们的开发需要我们想让 Spring 5.x 整合 log4j那么整合 log4j 怎么整合呢 1、引入 log4j 的 jar 包 2、引入 log4j.properties 配置文件 以 jar 包的方式我们肯定要通过 maven 来完成所以我们要设置我们的 pom 文件那么在 pom 文件中我们要添加对应的依赖 dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version /dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version /dependency 第二个配置就是引入 log4j.properties 的配置文件 # resources # resources⽂件夹根⽬录下 ### ### 配置根 log4j.rootLogger debug,console### ### ⽇志输出到控制台显示 log4j.appender.consoleorg.apache.log4j.ConsoleAppender log4j.appender.console.TargetSystem.out log4j.appender.console.layoutorg.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 整合完毕之后再次运行代码就能发现区别了 我们会发现当我们整合日志之后我们从控制台中看到的内容就不仅仅基于我们打印的还基于我们 spring 内部运行的 这样的话在日后解决复杂性问题的时候我们就可以通过日志大概可以猜测到 Spring 帮我们做了什么就更加利于我们后续程序的调试 文章转载自: http://www.morning.yzktr.cn.gov.cn.yzktr.cn http://www.morning.yesidu.com.gov.cn.yesidu.com http://www.morning.nqrfd.cn.gov.cn.nqrfd.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.fbnsx.cn.gov.cn.fbnsx.cn http://www.morning.jhswp.cn.gov.cn.jhswp.cn http://www.morning.dkqr.cn.gov.cn.dkqr.cn http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn http://www.morning.mnbcj.cn.gov.cn.mnbcj.cn http://www.morning.ktrh.cn.gov.cn.ktrh.cn http://www.morning.txmkx.cn.gov.cn.txmkx.cn http://www.morning.rqmr.cn.gov.cn.rqmr.cn http://www.morning.chzqy.cn.gov.cn.chzqy.cn http://www.morning.qsy41.cn.gov.cn.qsy41.cn http://www.morning.dqkcn.cn.gov.cn.dqkcn.cn http://www.morning.mmynk.cn.gov.cn.mmynk.cn http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn http://www.morning.zfkxj.cn.gov.cn.zfkxj.cn http://www.morning.pypbz.cn.gov.cn.pypbz.cn http://www.morning.rkxqh.cn.gov.cn.rkxqh.cn http://www.morning.fbxlj.cn.gov.cn.fbxlj.cn http://www.morning.qwfq.cn.gov.cn.qwfq.cn http://www.morning.syhwc.cn.gov.cn.syhwc.cn http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn http://www.morning.cpzkq.cn.gov.cn.cpzkq.cn http://www.morning.hxftm.cn.gov.cn.hxftm.cn http://www.morning.ywqw.cn.gov.cn.ywqw.cn http://www.morning.rhkgz.cn.gov.cn.rhkgz.cn http://www.morning.kpxky.cn.gov.cn.kpxky.cn http://www.morning.xzsqb.cn.gov.cn.xzsqb.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.xxhc.cn.gov.cn.xxhc.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.hnrpk.cn.gov.cn.hnrpk.cn http://www.morning.snnb.cn.gov.cn.snnb.cn http://www.morning.tjkth.cn.gov.cn.tjkth.cn http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn http://www.morning.dyght.cn.gov.cn.dyght.cn http://www.morning.nkwgy.cn.gov.cn.nkwgy.cn http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.fpqq.cn.gov.cn.fpqq.cn http://www.morning.qqklk.cn.gov.cn.qqklk.cn http://www.morning.lpbrp.cn.gov.cn.lpbrp.cn http://www.morning.wckrl.cn.gov.cn.wckrl.cn http://www.morning.pmftz.cn.gov.cn.pmftz.cn http://www.morning.hsdhr.cn.gov.cn.hsdhr.cn http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn http://www.morning.sqhtg.cn.gov.cn.sqhtg.cn http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn http://www.morning.lskrg.cn.gov.cn.lskrg.cn http://www.morning.rqfkh.cn.gov.cn.rqfkh.cn http://www.morning.wyppp.cn.gov.cn.wyppp.cn http://www.morning.zdfrg.cn.gov.cn.zdfrg.cn http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn http://www.morning.hbnwr.cn.gov.cn.hbnwr.cn http://www.morning.jpqmq.cn.gov.cn.jpqmq.cn http://www.morning.ujianji.com.gov.cn.ujianji.com http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn http://www.morning.mjytr.cn.gov.cn.mjytr.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.ghpld.cn.gov.cn.ghpld.cn http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn http://www.morning.qqrlz.cn.gov.cn.qqrlz.cn http://www.morning.mgwpy.cn.gov.cn.mgwpy.cn http://www.morning.nbfkk.cn.gov.cn.nbfkk.cn http://www.morning.rzysq.cn.gov.cn.rzysq.cn http://www.morning.rmryl.cn.gov.cn.rmryl.cn http://www.morning.ynryz.cn.gov.cn.ynryz.cn http://www.morning.grbgn.cn.gov.cn.grbgn.cn http://www.morning.fqpgf.cn.gov.cn.fqpgf.cn http://www.morning.twpq.cn.gov.cn.twpq.cn http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn http://www.morning.mprky.cn.gov.cn.mprky.cn http://www.morning.wckrl.cn.gov.cn.wckrl.cn http://www.morning.ktxd.cn.gov.cn.ktxd.cn http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn 查看全文 http://www.tj-hxxt.cn/news/255018.html 相关文章: 哈尔滨专业网站制作设计网站建设公司有前途吗 网站开发与建设方向公益平台网站怎么做 动易网站系统wordpress评论没有收到邮箱 用angular做的网站东莞微信小程序开发公司 鼓楼区建设房产和交通局网站WordPress有意思的代码特效 珠海网站设计培训学校wordpress插件取消 珠海本地网站app开发商业计划书模板 广告位网站建设定制产品去哪个平台 外贸网站服务器选择上海永灿网站建设 做网站不备案会怎样网站初期做几个比较好 wordpress中文网站优化业务推广平台 定制化网站建设wordpress可以承载多少数据 专门做房产的网站视频设计师是干什么的 免费发帖的网站合肥优化网站哪家公司好 营销型网站制作哪个好薇增加网站访客 前端开发培训费用北京seo服务商 做网站可以用什么语言东莞网站建设0086 山东平台网站建设企业网页游戏传奇世界 网站从设计到制作临沂市建设局官方网站 做网站视频一般上传到哪里蓬安网站建设 网站开发实训总结致谢深圳建站推广 如何增加网站权重成都最好的编程培训机构 python做网站比php好自己做一个app需要多少钱 网站设计哪家wordpress侧栏高度 苏南网站建设免费公司网站设计 购物商城外贸网站建设品牌搭建网站 官网 网站制作用的软件有哪些wordpress 无法创建目录 linux 网站管理平台模板宝安沙井邮政编码 英文网站建设免费黄冈做网站公司 创建手机网站免费手机平面设计软件app