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

开个小网站要怎么做怎么注册一个自己的网站

开个小网站要怎么做,怎么注册一个自己的网站,自己怎样做海外网站,专门做汽车gps贷款网站1. 概略版 Spring生成Bean方式有如下几种,可根据需求选择合适的方式,通常优先使用注解驱动的声明式配置(如Component、Bean),复杂场景结合条件或作用域控制。 方式特点适用场景Component 组件扫描简单直观&#xff…

1. 概略版

Spring生成Bean方式有如下几种,可根据需求选择合适的方式,通常优先使用注解驱动的声明式配置(如@Component@Bean),复杂场景结合条件或作用域控制。

方式特点适用场景
@Component + 组件扫描简单直观,依赖扫描机制通用Bean的快速注册
@Configuration + @Bean显式定义,灵活控制初始化逻辑需要复杂配置或依赖注入时
@ConfigurationProperties + @EnableConfigurationProperties配置属性绑定从配置文件读取属性并映射到Bean
@Import模块化配置管理将配置拆分为多个类
@ImportResourceXML配置兼容需要兼容旧版XML配置

2. 详情版

1. 使用 @Component 及组件扫描 (@ComponentScan)

作用

  • 通过注解标记类为Bean,结合组件扫描自动注册Bean。

适用场景

  • 通用Bean的注册,如Service、Repository等。

用法

  • 在类上添加 @Component 或其衍生注解(@Service@Repository@Controller,@RestController)。
  • 在配置类上添加 @ComponentScan 指定扫描包路径(或使用Spring Boot的自动扫描特性)。

示例:

// 定义Bean类
@Component
public class UserService {public void sayHello() {System.out.println("Hello from UserService");}
}// 配置类(可省略,Spring Boot默认扫描主类所在包及其子包)
@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {
}

2. 通过 @Configuration 和 @Bean 方法

作用

  • 通过Java配置类显式声明Bean。

适用场景

  • 需要复杂初始化逻辑或依赖其他Bean时。

用法

  • 在配置类上添加 @Configuration
  • 在配置类中通过 @Bean 注解方法定义Bean。

示例

@Configuration
public class AppConfig {@Beanpublic MyService myService() {MyService service = new MyService();service.setParam("configured");return service;}
}// 使用Bean
@Service
public class AnotherService {@Autowiredprivate MyService myService; // 自动注入由@Bean生成的Bean
}

3. 使用 @ConfigurationProperties + @EnableConfigurationProperties

作用

  • 将配置属性绑定到Java类,并自动注册为Bean。

适用场景

  • 从配置文件(如application.properties)中读取属性并映射到Bean。

用法

  • 在类上添加 @ConfigurationProperties 指定属性前缀。
  • 在配置类上通过 @EnableConfigurationProperties 注册该类。

示例

//application.properties文件的配置内容
test.app.name=bigbear-demo1
test.app.timeout=1000// 定义配置类
@Data
@ConfigurationProperties(prefix = "test.app")
public class AppProperties {private String name;private int timeout;
}// 在配置类中启用
@Configuration
@EnableConfigurationProperties(AppProperties.class)
public class AppConfig {
}// 使用Bean
@Service
public class MyService {@Autowiredprivate AppProperties appProps; // 可获取配置属性值
}

4. 使用 @Import 注入其他配置类

作用

  • 导入其他配置类,批量注入其定义的Bean。

适用场景

  • 模块化配置,将不同配置拆分到多个类中。

用法

  • 在主配置类上添加 @Import,指定需导入的配置类。

示例

// 第一个配置类
@Configuration
public class DBConfig {@Beanpublic DataSource dataSource() { ... }
}// 第二个配置类
@Configuration
public class ServiceConfig {@Beanpublic UserService userService() { ... }
}// 主配置类
@Configuration
@Import({DBConfig.class, ServiceConfig.class})
public class AppConfig {
}

5. 通过 @ImportResource 加载XML配置

作用

  • 将XML配置中的Bean导入到Spring容器中。

适用场景

  • 兼容旧版XML配置或混合使用XML/Java配置。

用法

  • 在配置类上添加 @ImportResource,指定XML文件路径。

示例

@Configuration
@ImportResource("classpath:applicationContext.xml")
public class AppConfig {// XML中定义的Bean会被自动注册
}

3. 影响bean生成的方式

1. 使用 @Conditional 条件化生成Bean

作用

  • 根据条件动态决定是否生成Bean。

适用场景

  • 根据环境、依赖等条件选择性注册Bean。

用法

  • 在Bean方法或类上添加 @Conditional 及其衍生注解(如 @ConditionalOnClass@ConditionalOnProperty)。

示例

@Configuration
@ConditionalOnBean(AppManager.class)
public class AppConfig {@Bean@ConditionalOnProperty(name = "feature.enabled", havingValue = "true")public FeatureService featureService() {return new FeatureService();}@Bean@ConditionalOnMissingBean(EessageClient.class)public FeatureService messageClient() {return new EessageClient();}}

2. 使用 @Scope 定制Bean作用域

作用

  • 修改Bean的作用域(如单例、原型等)。

适用场景

  • 需要控制Bean的生命周期和线程安全性。

用法

  • 在Bean方法或类上添加 @Scope

示例

@Configuration
public class AppConfig {@Bean@Scope("prototype") // 每次注入生成新实例public MyPrototypeBean myBean() {return new MyPrototypeBean();}
}

3. 使用 @Lazy 延迟初始化Bean

作用

  • 延迟Bean的初始化直到第一次使用时。

适用场景

  • 避免ApplicationContext启动时加载不必要的Bean。

用法

  • 在Bean方法或类上添加 @Lazy

示例

@Configuration
public class AppConfig {@Bean@Lazypublic ExpensiveToInitializeBean expensiveBean() {return new ExpensiveToInitializeBean();}
}

http://www.dtcms.com/wzjs/278972.html

相关文章:

  • 电子政务门户网站建设代码线上宣传方案
  • 建设银行甘肃省分行网站网络服务是什么
  • 树莓派3b 做网站服务器青山seo排名公司
  • 微网站解决方案线上推广引流渠道
  • 潍坊微信网站产品营销方案策划书
  • 常州建行网站市场推广计划方案模板
  • 昆明网站定制开发友链通
  • 聊城网站改版杭州网络推广有限公司
  • wordpress layout builder电脑优化是什么意思
  • 做网站怎样做才有百度快照推广链接让别人点击
  • 网站怎么做关键词搜索重庆网页优化seo公司
  • 响应式网站适合用什么框架做google play应用商店
  • 秦皇岛建设网招聘信息常州seo招聘
  • 网站建设 开发网站代码安卓优化
  • 小程序开发公司排行榜前10洛阳seo外包公司费用
  • w3c验证网站品牌运营中心
  • 响应网官方网站网络推广方法有哪些
  • 武汉政府网站建设广告最多的网站
  • 山东青岛网站设计公司印度疫情最新消息
  • 狂人站群系统seo标题优化的心得总结
  • 安康免费做网站淄博百度推广
  • 海南论坛网站建设怎么开发一个网站
  • php一般网站空间多大seo检查工具
  • 专业做网站制作自助建站系统站长统计幸福宝下载
  • 做中介最好用的网站技术培训
  • ktv在那些网站做宣传效果好百度快照替代
  • 提供定制型网站建设关键词营销优化
  • 为什么要立刻做网站竞价排名深度解析
  • 公司做网站有什么用seo好找工作吗
  • 重庆做网站开发的公司有哪些目前最好的引流推广方法