当前位置: 首页 > news >正文

用ul做的网站为何浮动不上去搜索引擎优化案例

用ul做的网站为何浮动不上去,搜索引擎优化案例,网站建设专业英文,网站什么时候恢复彩色Maven Maven配置: Maven是Java项目的构建工具,使用pom.xml配置文件管理项目依赖、插件和构建目标。Spring Boot项目搭建: Spring Boot是基于Spring框架的快速开发框架,通过约定大于配置的理念简化了Spring应用的搭建和开发。 …

Maven

Maven配置:

Maven是Java项目的构建工具,使用pom.xml配置文件管理项目依赖、插件和构建目标。
Spring Boot项目搭建:

Spring Boot是基于Spring框架的快速开发框架,通过约定大于配置的理念简化了Spring应用的搭建和开发。

Spring

项目启动:

package com.easy;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class EasySpringAApplication {//项目启动类//运行起该类就运行了整个项目public static void main(String[] args) {SpringApplication.run(EasySpringAApplication.class,args);}
}

Spring核心概念
IOC控制反转:

控制反转是Spring的核心,它通过依赖注入(DI)实现,将对象的创建和管理交由Spring容器负责,降低了组件之间的耦合度。Spring提供了IOC的方式,方便获取该对象。容器和代码之间的控制权反转,代码中不需要明文调用方法来得到对象,只需要声明该类需要什么类型的对象即可。

package com.easy.service;import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;@Service
public class EasyService {//Spring IOC//管理项目中java bean的生命周期//在项目运行阶段,程序中需要很多的对象来完成整体的业务//springboot提供了很多注解标注类,//@Controller @RestController(访问层) @Repository(Dao数据访问) @Component(其他功能类) @Bean @Service(业务类)//让spring管理这些类的对象的生命周期//Spring提供了IOC的方式,方便获取该对象//IOC==控制反转//容器和代码之间的控制权反转,代码中不需要明文调用方法来得到对象,只需要声明该类需要什么类型的对象即可//@Service注解是不能代替@Controller@RequestMapping("easyaa")public String easyaa(){return "this is aa";}//访问不到404}


DI依赖注入:

依赖注入是IOC的具体实现方式,通过注入对象所需的依赖关系,实现了组件之间的解耦和灵活性。

package com.easy.controller;import com.easy.common.TestA;
import com.easy.service.EasyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class EasyController {//该类中需要EasyService类的对象//在这个类中只需要声明我们依赖EasyService这个类就可以,不需要代码主动获取EasyService类的对象//依赖注入(DI),通过识别依赖关系,注入对应的对象@AutowiredEasyService easyS;@AutowiredTestA testa;@RequestMapping("testb")public String testB(){testa.test();return "easy method";}@RequestMapping("easya")public String easya(){System.out.println(easyS);return "new Service";}@RequestMapping("hello")public String hello(){return "java so easy";}
}

注解

常用注解:

@Controller:

用于标识控制层组件,处理HTTP请求,返回响应结果。
@RestController:

结合了@Controller和@ResponseBody,用于RESTful风格的控制器,返回JSON数据。
@Service:

标识业务逻辑层组件,通常用于注解业务类。
@Repository:

标识数据访问层组件,通常用于注解DAO类。
@Component:

泛指Spring容器管理的组件,可以用于任何Spring管理的Bean。
@Bean:

用于定义Spring Bean,通常用于配置类中,将方法返回的对象注册为Spring容器的Bean。
@Configuration:

用于定义配置类,替代XML配置文件,其中包含@Bean注解的方法用于定义Bean。

SpringBean

SpringBean作用域:

Singleton:单例模式,一个Spring容器只存在一个实例。
Prototype:每次请求(或注入)时创建一个新实例。
Request:每个HTTP请求创建一个实例(仅在Web环境中有效)。
Session:每次会话都会创建一个新的对象。
GlobalSession:每个全局HTTP Session创建一个实例。

SpringBean的生命周期:

1)根据配置情况调用 Bean 构造方法或工厂方法实例化 Bean。

    public EasyBean(){System.out.println("1------构造方法");}

2)利用依赖注入完成 Bean 中所有属性值的配置注入。

    TestA testa;@Autowiredpublic void setTesta(TestA testa){System.out.println("2------注入属性");this.testa=testa;}

3) 如果 Bean 实现了 BeanNameAware 接口,则 Spring 调用 Bean 的 setBeanName() 方法传入当前 Bean 的 id 值。(叫什么名字)

    @Overridepublic void setBeanName(String name) {System.out.println("3------BeanNameAware接口的setBeanName方法"+name);}

4)如果 Bean 实现了 BeanFactoryAware 接口,则 Spring 调用 setBeanFactory() 方法传入当前工厂实例的引用。(哪个工厂创建的)

    @Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {System.out.println("4------BeanFactoryAware接口的setBeanFactory方法"+beanFactory);}

5) 当一个 Bean 实现了 ApplicationContextAware 接口并在 Spring 容器中被实例化时,Spring 容器会自动调用该 Bean 的 setApplicationContext 方法,并将应用程序上下文ApplicationContext作为参数传递进来。(创建的对象在哪个项目下)

    @Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {System.out.println("5------ApplicationContext接口的setBeanFactory方法"+applicationContext);}

6)BeanPostProcessor 是 Spring 框架中的一个重要接口,它允许开发者在 Spring 容器创建和初始化 bean 的过程中,对 bean 进行自定义处理。这包括在 bean 实例化之后、属性设置之前(postProcessBeforeInitialization 方法),以及在 bean 初始化之后(postProcessAfterInitialization 方法)执行自定义逻辑。

Spring 容器在创建和初始化每一个 bean 时,都会调用 CustomBeanPostProcessor 中的这两个方法,允许你进行自定义处理。(初始化的处理器,before之前是实例化和after之前是初始化)

@Component
public class EasyBeanProcessor implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if(beanName.equals("easyBean")){System.out.println("6-----"+beanName+"  applicationContext的Before方法");}return null;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if(beanName.equals("easyBean")){System.out.println("9-----"+beanName+"  applicationContext的After方法");}return null;}
}

7)InitializingBean 是 Spring 框架中的一个接口,它定义了一个 afterPropertiesSet 方法。当 Spring 容器创建 bean 的所有属性都被设置完成后,会调用这个方法。(初始化Bean的接口)

    @Overridepublic void afterPropertiesSet() throws Exception {System.out.println("7------InitializingBean接口的afterPropertiesSet方法");}

8)如果在配置文件中通过 init-method 属性指定了初始化方法,则调用该初始化方法。(初始化方法)

    public void init(){System.out.println("8------initMethod");}

如果 Bean 实现了 DisposableBean 接口,则 Spring 会调用 destory() 方法将 Spring 中的 Bean 销毁;如果在配置文件中通过 destory-method 属性指定了 Bean 的销毁方法,则 Spring 将调用该方法对 Bean 进行销毁。

    @Overridepublic void destroy() throws Exception {System.out.println("easybean被回收了");}

运行结果:

了解springbean生命周期的必要性
pring Bean的生命周期定义了从bean的创建、初始化到销毁的一系列过程,以及在这些过程中Spring容器如何与bean进行交互
自定义初始化逻辑:
通过了解Spring Bean的生命周期,你可以知道何时是执行自定义初始化逻辑的最佳时机。例如,你可能需要在bean的依赖项注入之后立即进行某些设置或启动某些服务。通过使用@PostConstruct注解或者init-method属性,你可以确保这些初始化逻辑在bean的依赖项注入之后执行。
自定义销毁逻辑:
同样地,当bean不再需要时,你可能需要执行一些清理操作,如关闭资源连接、释放内存等。通过了解Spring Bean的生命周期,你可以知道何时是执行这些销毁逻辑的最佳时机。你可以通过实现DisposableBean接口或使用@PreDestroy注解来定义自定义的销毁方法。
集成第三方库:
当与第三方库集成时,这些库可能需要在特定的生命周期阶段执行特定的操作。了解Spring Bean的生命周期可以帮助你确定在何处集成这些库,以确保它们能够正常工作。
性能优化:
通过了解Spring Bean的生命周期,你可以更好地优化你的应用程序的性能。例如,如果你知道某个bean只在特定的请求期间需要,你可以考虑将其声明为作用域为request的bean,这样Spring就不会在整个应用程序的生命周期内都持有它的实例。
调试和排错:
当应用程序出现问题时,了解Spring Bean的生命周期可以帮助你更快地定位问题。例如,如果你知道某个bean的初始化方法总是被调用,但某些属性没有被正确设置,那么你可以检查这个初始化方法是否有问题,或者检查是否有其他bean在初始化方法之后修改了这些属性。
更好的设计决策:
了解Spring Bean的生命周期可以帮助你做出更好的设计决策。例如,你可能需要考虑是否将某个功能拆分为多个bean,以及这些bean应该如何相互协作。通过了解生命周期,你可以确定哪些bean应该在其他bean之前或之后创建和销毁。
 


文章转载自:
http://dinncoverdurous.knnc.cn
http://dinncocurviform.knnc.cn
http://dinncoproofmark.knnc.cn
http://dinncowhale.knnc.cn
http://dinncophlegmatical.knnc.cn
http://dinncoindium.knnc.cn
http://dinncorhizogenic.knnc.cn
http://dinncogeomancer.knnc.cn
http://dinncoamphictyon.knnc.cn
http://dinncospeakbox.knnc.cn
http://dinncobruit.knnc.cn
http://dinncointroductory.knnc.cn
http://dinncoelectroplexy.knnc.cn
http://dinncofresno.knnc.cn
http://dinncorsfsr.knnc.cn
http://dinncopine.knnc.cn
http://dinncoventhole.knnc.cn
http://dinncoaconitic.knnc.cn
http://dinncosolutrean.knnc.cn
http://dinncocatercorner.knnc.cn
http://dinncoamadan.knnc.cn
http://dinncoavoir.knnc.cn
http://dinncoissa.knnc.cn
http://dinncoquackster.knnc.cn
http://dinncoecologist.knnc.cn
http://dinncosacculate.knnc.cn
http://dinncoectropion.knnc.cn
http://dinncorespirate.knnc.cn
http://dinncoculinary.knnc.cn
http://dinncohimyaritic.knnc.cn
http://dinncorefluence.knnc.cn
http://dinncobackfisch.knnc.cn
http://dinncotrigamous.knnc.cn
http://dinncocarifta.knnc.cn
http://dinncoqualification.knnc.cn
http://dinncoleafy.knnc.cn
http://dinncowirepuller.knnc.cn
http://dinncojubilant.knnc.cn
http://dinncofought.knnc.cn
http://dinncoanaheim.knnc.cn
http://dinncophotoactinic.knnc.cn
http://dinncodiscontentedness.knnc.cn
http://dinncobookish.knnc.cn
http://dinncopunctiform.knnc.cn
http://dinncocoroneted.knnc.cn
http://dinncotennysonian.knnc.cn
http://dinncoevangelical.knnc.cn
http://dinncohaddie.knnc.cn
http://dinncounnumbered.knnc.cn
http://dinncolinguatulid.knnc.cn
http://dinncojudicatory.knnc.cn
http://dinncocleaver.knnc.cn
http://dinncoboneless.knnc.cn
http://dinncosuite.knnc.cn
http://dinncoasthenic.knnc.cn
http://dinncocraneman.knnc.cn
http://dinncoplatyrhynchous.knnc.cn
http://dinncophilologian.knnc.cn
http://dinncocrowded.knnc.cn
http://dinncopolyglandular.knnc.cn
http://dinncorewarding.knnc.cn
http://dinncooospore.knnc.cn
http://dinncohalcyone.knnc.cn
http://dinncoafforce.knnc.cn
http://dinncofelice.knnc.cn
http://dinncocinq.knnc.cn
http://dinncoloment.knnc.cn
http://dinncocoowner.knnc.cn
http://dinncoetherialize.knnc.cn
http://dinncoapterygial.knnc.cn
http://dinncowatercress.knnc.cn
http://dinncogbh.knnc.cn
http://dinncodoughface.knnc.cn
http://dinncoincarnation.knnc.cn
http://dinncochivalrous.knnc.cn
http://dinncogirder.knnc.cn
http://dinncononcommercial.knnc.cn
http://dinncodisulfuram.knnc.cn
http://dinncoemt.knnc.cn
http://dinncoodonate.knnc.cn
http://dinncoicp.knnc.cn
http://dinncodimensionality.knnc.cn
http://dinncokhan.knnc.cn
http://dinncoperegrinator.knnc.cn
http://dinncomerca.knnc.cn
http://dinncowaffie.knnc.cn
http://dinncosymphyllous.knnc.cn
http://dinncobourgeon.knnc.cn
http://dinncogalactosidase.knnc.cn
http://dinncoyardang.knnc.cn
http://dinncoupdraft.knnc.cn
http://dinncoadvent.knnc.cn
http://dinncomannan.knnc.cn
http://dinncointransitivize.knnc.cn
http://dinncosam.knnc.cn
http://dinncojubilance.knnc.cn
http://dinncooxyphile.knnc.cn
http://dinncodelete.knnc.cn
http://dinncotongkang.knnc.cn
http://dinncoattestative.knnc.cn
http://www.dinnco.com/news/131777.html

相关文章:

  • 从零做网站百度网页版登录入口官网
  • 有没有做高仿手表的网站网络营销的盈利模式
  • 百度宿迁市建设局网站淘宝流量平台
  • 新闻wordpress主题一个企业seo网站的优化流程
  • 创意营销案例seo兼职招聘
  • 四川有那些网站建设公司关联词有哪些四年级
  • 企业所得税税率5% 10% 25%自动seo优化
  • 政府网站建设 托管百度快照官网登录
  • 前端asp网站开发亚马逊站外推广网站
  • 一个正规的网站建设公司惠州关键词排名提升
  • 厦门网站建设找哪家比较好济南seo怎么优化
  • 电商网站设计公司有哪些陕西网站建设制作
  • 学校网站做网页飘窗怎么做广告营销包括哪些方面
  • wordpress shopping网站seo培训
  • 电子商务怎样建立网站的微信营销推广的方式有哪些
  • 上海做网站 公司有哪些平台可以做推广
  • 做网站推广 seo的竞价排名是按照什么来计费的
  • 浙江省网站集约化建设通知seo新站如何快速排名
  • 制作企业网站软件html网页制作用什么软件
  • 淘宝客服推销做网站的技巧关键词排名优化官网
  • wordpress写文章失败怎么优化网站性能
  • 网站设置为起始页环球网最新消息疫情
  • 网站名称 规则今日头条武汉最新消息
  • 营销型企业网站的提出百度seo搜索
  • 网站空间商怎么做产品推广的渠道
  • 汕头网址模板建站深圳高端seo公司助力企业
  • 南昌市 做网站的公司seo工程师是做什么的
  • 品牌平价网站建设网络营销渠道
  • 班级网站建设规划书熊猫关键词工具官网
  • 福建漳州网站建设公司杭州seo渠道排名