Spring简单例子

1.引入包

强烈建议,学习使用下maven及类似依赖包管理工具,如果你以后学Java,基本上会用到的吧

maven:在pom添加依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.2.7.RELEASE</version>
</dependency>

点击工程,选中Maven选项,点击Reimport(各个IDE可能不一样),它将会自动导入相关依赖包。

如果不使用,直接导入,需要下载至少以下7个包:

aopalliance.jar

commons-logging.jar

spring-aop.jar

spring-beans.jar

spring-core.jar

spring-context.jar

spring-expression.jar

注意各个jar版本一致(最新稳定版4.3.2.RELEASE,下载地址:http://projects.spring.io/spring-framework/)

如果是Eclipse,则新建Dynamic Web Project,将以上7个包放在工程的 WebContent/WEB-INF/lib 下即可;如果是Idea,则New,选择Spring,会自动导入相应的包(相应的源码也可以选择下载),也可以选择相应的版本

2.新建POJO以及测试类

package com.xxx.spring.test;

public class HelloWord {
    private String message;
    
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

测试类:

package com.xxx.spring.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {
    public static void main(String[] args){
        ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");//加载配置文件,可以有多种,这里列举了常用的一种
        HelloWord obj = (HelloWord) context.getBean("helloword");//获得bean对象
        System.out.println("The message value is " + obj.getMessage());
    }
}

3.配置bean

Eclipse在WEB-INF下配置Beans.xml,默认路径(WEB-INF下);Idea,默认路径是resource目录

<?xml version="1.0" encoding="utf-8" ?>
    <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.springframework.org/schema/beans
                                   http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" >

    <!--
     这里的bean对应一个POJO(通过class=""指定),即一个简单的Java类,仅包含字段以及相应的getter/setter
     (当然,这并不是一定要这样)
     id : bean的id,用于获取(ApplicationContextObject.getBean(id))
     property : 填充POJO属性,name为类对应的属性名,value为所填充的值,填充方式有多种
     -->
    <bean id="helloword" class="com.xxx.spring.test.HelloWord">
        <property name="message" value="Hello World!" />
    </bean>
    </beans>

OK,配置完,就可以运行测试类SpringTest了,输出结果:

The message value is Hello World!

### 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、付费专栏及课程。

余额充值