spring的简单实例

spring框架的用途简单举例(第一个实例):

可以使用spring的bean实现创建类的对象,而不是由客户端去创建

 

此处为编写简单的spring实例代码,文件的结构为:

 

JavaBean实例代码(User.java):

 1 package com.gp.service;
 2 public class User {
 3   private String username;
 4   private String password;
 5 public String getUsername() {
 6  return username;
 7 }
 8 public void setUsername(String username) {
 9  this.username = username;
10 }
11   
12   public void show(){
13    System.out.println("姓名是: "+username+"  , 密码是:"+password);
14   }
15 public String getPassword() {
16  return password;
17 }
18 public void setPassword(String password) {
19  this.password = password;
20 }
21 }

 

spring的配置文件(applicationContext.xml):

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5            http://www.springframework.org/schema/beans/spring-beans.xsd">
 6   <bean id="user" class="com.gp.service.User">
 7      <property name="username" value="zhangsan"/>
 8      <!-- 调用的是setUsername后面的值,即把set后的第一个字母小写即可 -->
 9      <property name="password" value="123456"/>
10   </bean>
11 </beans>

 

Java的测试文件(TestUser.java):

 1 package com.gp.test;
 2 import org.springframework.context.ApplicationContext;
 3 import org.springframework.context.support.ClassPathXmlApplicationContext;
 4 import com.gp.service.User;
 5 public class TestUser {
 6    public static void main(String[] args) {
 7     
 8  //spring容器是在此处进行初始化的,对象的创建是有spring容器创建的,此处加载容器,
 9     //通过getBean来获取对象,里面的参数是由xml文件中bean标签的id
10  ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
11  User user=(User) context.getBean("user");
12     user.show();
13   }
14 }

 

执行测试文件的运行结果为:

姓名是: zhangsan  , 密码是:123456

有以下几种方式可以实现:

User user=context.getBean("user",User.class);

或者改为

User user=context.getBean(User.class);

可以在BeanFactoty中的获取getBean方法可以得知:

 

================================================================================================

而如果不用spring框架,直接写,则测试文件如下所示:

 1 package com.gp.test;
 2 import com.gp.service.User;
 3 public class TestUser1 {
 4   public static void main(String[] args) {
 5  User user=new User();
 6     user.setUsername("zhangsan");
 7     user.setPassword("123456");
 8     user.show();
 9     }
10 }

 

运行结果同上所示:

通过比较可以得知,通过spring框架,对象的创建交给了spring框架进行,spring容器中保存了bean,并且通过applicationContext.xml文件中bean标签id可以在context中获取对应的实例对象。

对象的创建是通过Java的反射生产的,所以User.java类中必须有一个无参的构造方法,否无运行报错。

 

转载于:https://www.cnblogs.com/gpx-startup/p/8545888.html

### Spring Framework 基本示例代码 以下是基于Spring框架的一个基本示例,展示了如何通过配置和注解实现依赖注入以及简单的业务逻辑。 #### 配置类 `AppConfig.java` 此配置类用于定义Spring容器中的Bean。 ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { @Bean public MyService myService() { return new MyServiceImpl(); } } ``` #### 接口和服务实现类 接口`MyService`及其具体实现`MyServiceImpl`展示了一个典型的面向接口编程模式。 ```java // 定义服务接口 public interface MyService { String getMessage(); } // 实现服务接口的具体类 public class MyServiceImpl implements MyService { @Override public String getMessage() { return "Hello from Spring!"; } } ``` #### 测试类 `SpringBeanApplicationTests.java` 测试类验证了Spring Bean的自动装配功能[^3]。 ```java import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class SpringBeanApplicationTests { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); MyService service = (MyService) context.getBean(MyService.class); System.out.println(service.getMessage()); } } ``` 以上代码片段演示了如何利用Spring框架的核心特性——依赖注入(DI)。它还说明了如何通过Java配置类替代传统的XML配置方式来声明Beans[^1]。 --- ### 使用Semgrep检测潜在漏洞 为了增强安全性并防止错误配置,可以使用工具如Semgrep扫描项目中的风险。例如,在YAML文件中启用所有Actuator端点可能带来安全隐患[^2]。因此建议仅暴露必要的监控端点而非全部。 --- ### 结合其他技术扩展应用 如果计划进一步提升系统的安全性和可维护性,则可以考虑集成Spring Security与Spring Session Redis解决方案[^4]。这种方式允许将JSON Web Token(JWT)存储于服务器侧会话之中从而避免向客户端泄露敏感令牌信息。 对于数据访问层开发而言,采用MyBatis作为持久化框架是一个不错的选择。下面给出一个DAO实例的教学链接供参考[^5]: [Github Repository](https://github.com/example/mybatis-dao-example) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值